Entity framework 实体框架,不需要的外键
我先用EF代码 我创建了两个类。为了简单起见,假设我有一个用户表(类)和一个文件附件表。我希望将FileAttachment表与许多其他类一起使用,以便应用程序中需要FileAttachment的任何部分都可以重用该表。问题是,当EF生成模式时,它会在FileAttachment表中创建一个外键返回到User表。有没有办法禁用它Entity framework 实体框架,不需要的外键,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我先用EF代码 我创建了两个类。为了简单起见,假设我有一个用户表(类)和一个文件附件表。我希望将FileAttachment表与许多其他类一起使用,以便应用程序中需要FileAttachment的任何部分都可以重用该表。问题是,当EF生成模式时,它会在FileAttachment表中创建一个外键返回到User表。有没有办法禁用它 谢谢您需要建立一个中间类 public class UserDocument { public int Id {get;set;} public in
谢谢您需要建立一个中间类
public class UserDocument
{
public int Id {get;set;}
public int UserId {get;set;}
public virtual User User {get;set;}
public int FileAttachmentId {get;set;}
public virtual FileAttachment FileAttachment {get;set;}
}
因此,您的用户类现在可以具有:
public virtual ICollection<UserDocument> Documents {get;set;}
然后你假设的客户类别会有:
public virtual ICollection<CustomerDocument> Documents {get;set;}
公共虚拟ICollection文档{get;set;}
您的实体看起来像什么?User=UserId、UserName、ICollection。FileAttachment=FileId、ByteRepresentation、UserId(不需要的)当然有效,但似乎有些过分。。。我不知道这是否是EF的一个限制,或者这是我的模式应该如何设计的。这并不过分,这是将可重用类与其他类联系起来的方式。据我所知,没有其他方法,如果你试图在纸上画出关系,无论是你自己的方式还是用这种方法,你会发现这是完全合乎逻辑的:)
public virtual ICollection<CustomerDocument> Documents {get;set;}