我有两种复杂类型:
public class ProductItemIdentifier
{
public Guid Product_Id { get; set; }
public string ItemName { get; set; }
}
public class AuctionItemIdentifier
{
public Guid Auction_Id { get; set; }
public string ItemName { get; set; }
}
我有一个实体类型:
public class Comment
{
public Guid Id { get; set; }
public string Comment { get; set; }
public ProductItemIdentifier ProductItem { get; set; }
public AuctionItemIdentifier AuctionItem { get; set; }
#region Navigation
public virtual Product Product { get; protected set; }
public virtual Auction Auction { get; protected set; }
#endregion
}
这是Configuration
public class CommentConfiguration : EntityTypeConfiguration<Comment>
{
HasKey(p => p.Id);
HasOptional(p => p.Product).WithMany().HasForeignKey(p => p.ProductItem.Product_Id).WillCascadeOnDelete(false);
HasOptional(p => p.Auction).WithMany().HasForeignKey(p => new { p.AuctionItem.Auction_Id }).WillCascadeOnDelete(false);
}
基本上我正在尝试通过复杂类型属性创建一个外键(并且不起作用)。
我得到的错误是:
The properties expression 'p => p.ProductItem.Product_Id' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new { t.MyProperty1, t.MyProperty2 }' VB.Net: 'Function(t) New With { t.MyProperty1, t.MyProperty2 }'.
有没有办法在不直接将外键列添加到Comment
实体的情况下创建关系?