我一直在对流畅的API进行一些研究才能做到这一点,但我不确定这是否可行,据我所知,OnModelCreate
将重新创建一个数据库,但我实际上是什么需要是一种将我的表与我的实体相关联的方法,我有一个带有这2个表的数据库
dbo.Fleets
OwnerId (PK,uniqueidentifier,not null)
ownerName (nvarchar(255),not null)
dbo.UserAccount
UserID (PK,uniqueidentifier,not null)
UserName (nchar(20), null)
SelectedFleet (FK,uniqueidentifier,null)
PrimaryFleet (FK,UniqueIdentifier,null)
外键适用于Fleets.OwnerId
,两者都是,所以在我的应用程序中,我希望能够获得我的主要机队和SelectedFleet
EF
的机队。
所以,如果我运行var v = dc.UserAccounts.Where(a => a.UserName == model.UserName).Include(d => d.Fleet).SingleOrDefault();
,我将获得完整的结果
答案 0 :(得分:-1)
我个人更喜欢使用DataAnnotations。
[Table("UserAccounts")]
public class UserAccounts
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string UserName { get; set; }
public virtual ICollection<Fleets> Fleets { get; set; }
}
[Table("Fleets")]
public class Fleets
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public virtual UserAccounts UserAccount { get; set; }
}
然后,要访问用户队列,您将使用
var v = dc.UserAccounts.Where(a => a.UserName == model.UserName).Include(d => d.Fleet).SingleOrDefault();