我无法在EF4.1中定义2个实体之间的一对多或多个关系。
以下是我的对象模型:
public class SubmittedTransaction
{
public int Batch_ID { get; set; }
public Int64 Batch_Detail_ID { get; set; }
public string Company_ID { get; set; }
public virtual ICollection<SubmittedSplitTransaction> Splits { get; set; }
}
使用fluent API,上面的对象有一个复合PK,定义为Batch_ID和Batch_Detail_ID。
public class SubmittedSplitTransaction
{
public Int64 Batch_Detail_ID { get; set; }
public string Company_ID { get; set; }
public decimal Sales_Amount { get; set; }
public decimal Revenue_Amount { get; set; }
}
使用fluent API,将上述对象定义为复合PK,定义为Batch_Detail_ID和Company_ID。
这将映射到现有数据库(TPT)。
这里的基本思想是SubmittedTransaction可以有多个与之关联的SubmittedSplitTransactions。导航实际上只需要一种方式,从SubmittedTransaction到SubmittedSplitTransaction。
我的DBContext类(OnModelCreating重写)或我的映射类中需要什么才能从SubmittedTransaction到SubmittedSplitTransaction发生延迟加载?
非常感谢任何帮助!!!
[编辑]
我接受了你的建议,做了以下修改:
public class SubmittedSplitTransaction
{
public Int64 Batch_Detail_ID { get; set; }
public string Company_ID { get; set; }
public decimal Sales_Amount { get; set; }
public decimal Revenue_Amount { get; set; }
public virtual SubmittedTransaction SubmittedTransaction { get; set; }
}
在我的DBContext类中,我将以下内容添加到OnModelCreating覆盖中:
modelBuilder.Entity<SubmittedTransaction>().HasMany(s => s.Splits).WithRequired().Map(m => m.MapKey("Batch_Detail_ID"));
我必须在这里遗漏一些东西,因为我现在正在抛出以下异常:
The specified association foreign key columns 'Batch_Detail_ID' are invalid. The number of columns specified must match the number of primary key columns.
SubmittedTransaction具有Batch_ID和Batch_Detail_ID的键。它可以有零个,一个或多个SubmittedSplitTransactions,它具有Batch_Detail_ID和Company_ID的键。而不是假设约定来创建这两个对象之间的关系,需要什么配置,因为我上面的内容显然是错误的?