基本的に、次のようなClient
クラスとクラスがありますAddress
public class Client
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Description{ get; set; }
public string Email { get; set; }
public string Website { get; set; }
public string PhoneNumber { get; set; }
[ForeignKey(typeof(Address))]
public int AddressId { get; set;}
[OneToOne(CascadeOperations = CascadeOperation.All)]
public Address Address { get; set; }
}
public class Address
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Line1 {get;set;}
public string Line2 {get;set;}
public string Line3 {get;set;}
public string Line4 {get;set;}
public string Line5 {get;set;}
public string Line6 {get;set;}
}
私はnugetパッケージSQLite.Net-PCLをSQLite.Net-PCL Extensionsと組み合わせて使用しているため、基本的にInsertを呼び出してClient
オブジェクトを渡し、クライアントをアドレスとともにデータベースに保存できます。このような:
_db.InsertWithChildren(clientObject);
私のアプリケーション (MvvmCross を使用した Xamarin.iOS) では、既存のデータベースをアプリケーションにバンドルしているため、コードでテーブルを作成しないので、私の障害点はInsertWithChildren(clientObject)
呼び出しにあります。
既存のテーブルを削除してから、コードでテーブルを作成しようとしましたが、Address
最初にテーブルを作成してからクライアントテーブルを作成すると、タイプ/プロパティClient
について「知らない」と表示されます。最初にテーブルAddress
を試すと、同じエラーが発生します。Client
クライアントとアドレスを1回の呼び出しで保存するために、できるだけ多くのバリエーションを試しましたが、役に立ちませんでした。
誰でもこれに光を当てることができますか?