単純なクラスに問題があります。私のクラスの 1 つのプロパティは別のクラスへの参照ですが、読み取ると常に null です。
public class Product
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public String Description { get; set; }
public virtual Trademark Trademark { get; set; }
}
public class Trademark
{
public int TrademarkId { get; set; }
public String Description { get; set; }
}
これらは私のクラスで、非常に単純です。次に、最初の要素を取得すると:
Product p = context.Products.First();
適切な製品が含まれていますが、p
商標は無効です。
次のように、linq を使用してクエリを実行したい場合でも、
var prods = context.Products.Where(p => p.Trademark.TrademarkId == 1).ToList();
データベースが生成されました。
SqlServer コンパクト エディション 4.0 で EF 4.3.1 を使用する
提案をありがとう。
追加:これは私のコンテキストクラスです:
public class HPContext : DbContext
{
public HPContext()
: base()
{
this.Configuration.LazyLoadingEnabled = false; //Just for test
}
public DbSet<Product> Products { get; set; }
public DbSet<Trademark> Trademarks { get; set; }
}
追加: データベース スキーマ:
Table:
Products
Fields:
Id int primaryKey
Description nvarchar(4000)
Trademark_TrademarkId int
Table:
Trademarks
Fields:
TrademarkId int PrimaryKey
Description nvarchar(4000)