我有一個類:如何指定的代碼中第一映射1-1關係的主要端
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( - 在此指定鍵)..對不起,我沒有工具來測試atm,但我相信我解決了這個問題。 – Tsasken
流暢鏈中的'WithRequired()'短語後面沒有'WithKey'選項。 – ProfK
您使用哪種版本的EF?這[鏈接](http://msdn.microsoft.com/en-us/data/jj591620.aspx#RequiredToRequired)可能會有用,但我懷疑它適用於所有版本的EF。如果不支持,你會尋找類似'HasOptional(t => t.CanteenTerminal).WithMany()。HasForeignKey(t => t.CanteenTerminalId)''的東西。 –