私は.NETアプリケーションでSQLite3を使用することに決めました。私のエンティティにはSystem.Uri
のプロパティが定義されています。 私がやって、SQLite-netを使用しようとしている:System.UriをSqlite3に保存
var myEntities =
Enumerable
.Range(1, 100)
.Select(id =>
new MyEntity()
{
Id = id,
StringProp = $"{nameof(MyEntity)} #{id}",
DateTimeProp = DateTime.Now.AddDays(id),
UriProp = new Uri("...")
});
using (var conn = new SQLiteConnection(dbFilePath))
{
conn.CreateTable<MyEntity>();
conn.InsertAll(myEntities);
}
を私が得るすべてがある:"System.NotSupportedException: 'Don't know about System.Uri'"
。
System.Uri
をそのまま使用してstring
と保存する方法はありますか?
string uristring = uri_variable.AbsoluteUri;
あなたはまた、URIを構築するために使用される元の文字列を取得することができます。
は、それはあなたがURIから必要なものに依存して、あなたは絶対URIをしたいとしましょう、あなたに非常に多くの
ここで問題となるのは、SQLiteのデータ型には 'Uri'がネイティブに含まれていないため、SQLite/-netにシリアライズ方法を知らせるためのマッピング機能(属性やマッピングメソッドなど)があるかどうか疑問です'System.Uri'オブジェクトと、どのタイプの類似性を使用するか(および逆直列化します)。 – Sergio
conn.CreateTableでクラッシュしますか? – farbiondriven
はい:私が書いたように、System.Uriを知らない「System.NotSupportedException」が発生します – Sergio