(現在)Android Samsung S6モバイルのデータベースで多対多のデータベース関係を機能させようとしています。この目的のために、私は SQLite.Net-PCL 3.0.5 と SQLiteNetExtensions 1.3.0 を使用しています。単純な SQlite アクセスが正常に機能していましたが、(リンク テーブルを介して) 多対多の関係をセットアップしようとしました。呼び出し時に sqlite-net-extensions がスローされます。
m_DatabaseConnection.UpdateWithChildren(article);
例外は次のとおりです。
System.MissingMethodException: Method 'SQLiteConnection.InsertAll' not found.
dllを逆アセンブルして、それが確実に存在することを確認したので、これは奇妙です。私のデータクラスの構造は次のとおりです。
public class Article : BaseModel
{
public Article()
{
Audience = new List<Tag>();
Content = new List<Tag>();
Weather = new List<Tag>();
}
...
[ManyToMany(typeof(ArticleTag))]
public List<Tag> Audience { get; set; }
[ManyToMany(typeof(ArticleTag))]
public List<Tag> Content { get; set; }
[ManyToMany(typeof(ArticleTag))]
public List<Tag> Weather { get; set; }
....
}
public class ArticleTag
{
[ForeignKey(typeof(Article))]
public int ArticleID { get; set; }
[ForeignKey(typeof(Tag))]
public int TagID { get; set; }
}
public class Tag : BaseModel
{
...
}
public class BaseModel
{
public BaseModel()
{
}
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public bool Dirty { get; set; }
}
それで、私は何を間違っていますか?別のバージョンの SQLite.Net-PCL を含める必要がありますか? 拡張プロジェクトをダウンロードしてコンパイルしようとしましたが、エラーが発生したようです (iOS のライセンスがないため、iOS プロジェクトをアンロードする必要がありましたが、残りはコンパイルされているはずです)。
何か案は?
- アップデート - -
問題の行は「WriteOperations.cs」内にある必要があるようです:
private static void UpdateManyToManyForeignKeys(this SQLiteConnection conn, object element, PropertyInfo relationshipProperty)
{
...
conn.InsertAll(missingIntermediateObjects);
..
}
これは次に SQLiteExtensions-MvvmCross に進み、インターフェイスの実装を見つけることができません。質問は、他の NuGet パッケージが必要ですか?