【发布时间】:2014-01-15 06:09:37
【问题描述】:
我有一堂课:
public partial class CanteenTerminal : XTimeEntity
{
public virtual Terminal Terminal { get; set; }
public short TerminalId { get; set; }
}
及其映射类:
public CanteenTerminalMap()
{
// Primary Key
HasKey(t => t.Id);
// Table & Column Mappings
ToTable("CANTEENTERM");
Property(t => t.Id).HasColumnName("TERM_CODEID");
// Relationships
HasRequired(t => t.Terminal)
.WithOptional(t => t.CanteenTerminal);
}
我还有课Terminal:
public partial class Terminal : XTimeEntity
{
public Terminal()
{
ControllerInterfacePointers = new List<ControllerInterfacePointer>();
TerminalParameters = new List<TerminalParameter>();
}
public string Name { get; set; }
public string Version { get; set; }
public short Enabled { get; set; }
public virtual CanteenTerminal CanteenTerminal { get; set; }
public short CanteenTerminalId { get; set; }
public virtual ICollection<ControllerInterfacePointer> ControllerInterfacePointers { get; set; }
public virtual ICollection<TerminalParameter> TerminalParameters { get; set; }
}
及其映射文件:
public TerminalMap()
{
// Primary Key
HasKey(t => t.Id);
Property(t => t.Name)
.IsRequired()
.HasMaxLength(30);
Property(t => t.Version)
.HasMaxLength(8);
// Table & Column Mappings
ToTable("TERMINAL");
Property(t => t.Id).HasColumnName("TERM_CODEID");
Property(t => t.Name).HasColumnName("TERM_NAME");
Property(t => t.Version).HasColumnName("TERM_VERSION");
Property(t => t.Enabled).HasColumnName("TERM_ENABLED");
Ignore(t => t.MasterId);
Ignore(t => t.IsActive);
HasOptional(t => t.CanteenTerminal)
.WithRequired(t => t.Terminal);
}
每当构建数据模型时,即当我运行测试查询时,我都会收到以下错误。我从几个一对一的关系中得到了这个,我只是暂时从实体中删除了这些属性,以避免来自我还不感兴趣的实体的错误。
无法确定之间关联的主体端 类型“XTime.Data.CanteenTerminal”和“XTime.Data.Terminal”。这 此关联的主体端必须使用显式配置 关系流式 API 或数据注释。
我该如何指定关系的主体端?
【问题讨论】:
-
在 "withrequired(t => t.Terminal)" .withkey(--specify key here--).. 对不起,我没有在 atm 上测试它的工具,但我相信我这样解决了这个问题..
-
流畅链中
WithRequired()后面没有WithKey选项。 -
您使用的是哪个版本的 EF?这个link 可能有用,但我怀疑它是否适用于所有版本的 EF。如果不支持,您将寻找类似 @987654329@ 的内容。
标签: c# entity-framework ef-code-first entity-framework-6