0
時,我有一些表格,以指定標準的電子郵件,並從他們應該被髮送地址的使用方法:使用這些類指定列加入
Email.Message
-------------
MessageId
Name
FromAddressId
Email.Address
-------------
AddressId
這些表進行建模代碼:
public class EmailAddress
{
public int AddressId { get; set; }
}
public class EmailMessage
{
public int MessageId { get; set; }
public string Name { get; set; }
public int FromAddressId { get; set; }
public virtual EmailAddress FromAddress { get; set; }
}
var message = Db.EmailMessages
.Where(m => m.Name == name)
.Include(m => m.FromAddress)
.SingleOrDefault();
我使用流利的API來指定的關係:
internal class EmailMessageMap : EntityTypeConfiguration<EmailMessage>
{
public EmailMessageMap()
{
ToTable("Message", "Email");
HasKey(p => p.MessageId);
// What do I put here?
}
}
如何建立聯接到u我的EmailMessage
類的FromAddressId
?我已經試過了這些選項:
HasRequired(p => p.FromAddress).WithRequiredPrincipal(); // uses LEFT OUTER JOIN
HasRequired(p => p.FromAddress).WithRequiredDependent(); // uses INNER JOIN
這些會導致被創建使用SQL無論是LEFT OUTER JOIN
或INNER JOIN
,但他們總是試圖加入Message.MessageId
到Address.AddressId
,這是不正確。我如何使用正確的列(FromAddressId
)?我需要有東西來取代// What do I put here?
,否則我得到以下異常:
無效的列名稱FromAddress_AddressId「
編輯:我可以在FromAddress
的頂部放置一個[ForeignKey("FromAddressId")]
物業和它的作品:
[Extent1].[FromAddressId] = [Extent2].[AddressId]
進展!現在,我如何在Fluent API中執行此操作?
這工作!謝謝! – zimdanen