在 MVC 5 中访问生成的数据模型和单独的数据模型
Accessing generated data model together with a separate data model in MVC 5
我有一个新建的 MVC 5 应用程序,使用默认模板 PayCaddy.Client
。在构建时,没有任何 mod,该项目创建了自己的数据模型,覆盖了 ApplicationUser
等用于身份验证的实体。我喜欢这样,只需创建项目,它就可以让我做我自己的事情,而不用担心身份验证。
然而现在,我自己的东西包括一个单独的业务数据模型,在一个单独的项目中,PayCaddy.Data
,其中包括像高尔夫游戏中的赌注这样的实体:
public class Bet: PayCaddyEntity
{
public virtual string BetName { get; set; }
public virtual int Amount { get; set; }
public virtual ApplicationUser Owner { get; set; }
public virtual DateTime OpenedOn { get; set; }
public virtual DateTime? ClosedOn { get; set; }
public ICollection<BetUser> Punters { get; set; }
}
现在这里用ApplicationUser
表示发起投注的用户,将在他们和Punters
之间。这让我陷入循环引用问题,我需要为 ApplicationUser
实体引用 PayCaddy.Client
,而该项目需要为 Bet
实体提供引用。
Identity 框架非常复杂,简单地将其实体移动到我的数据模型中是不可能的。现在,我已经将我的数据模型移到客户端项目中,与身份代码相同,但如果有一种相对简单的方法可以克服这个问题,我不想继续这样下去。如果存在不需要几天努力的解决方案,它们是什么?
您能否尝试将 ApplicationUser 对象移出 MVC 项目并将其移至您的新项目中。这样一来,您所有的模型都在一个项目中,您的 MVC 应用程序可以只引用一个数据项目?
OP 编辑: 只是一个警告:如果将 ApplicationUser
移动到您自己的数据模型中,则必须从 [= 派生 DbContext
12=],而不是普通的旧 DbContext
,在 OnModelCreating
中调用 base.OnModelCreating(modelBuilder)
至关重要。通常基本方法没有实现,但这里它有大约 70 行配置代码,对于这个数据模型来说是必不可少的。
我有一个新建的 MVC 5 应用程序,使用默认模板 PayCaddy.Client
。在构建时,没有任何 mod,该项目创建了自己的数据模型,覆盖了 ApplicationUser
等用于身份验证的实体。我喜欢这样,只需创建项目,它就可以让我做我自己的事情,而不用担心身份验证。
然而现在,我自己的东西包括一个单独的业务数据模型,在一个单独的项目中,PayCaddy.Data
,其中包括像高尔夫游戏中的赌注这样的实体:
public class Bet: PayCaddyEntity
{
public virtual string BetName { get; set; }
public virtual int Amount { get; set; }
public virtual ApplicationUser Owner { get; set; }
public virtual DateTime OpenedOn { get; set; }
public virtual DateTime? ClosedOn { get; set; }
public ICollection<BetUser> Punters { get; set; }
}
现在这里用ApplicationUser
表示发起投注的用户,将在他们和Punters
之间。这让我陷入循环引用问题,我需要为 ApplicationUser
实体引用 PayCaddy.Client
,而该项目需要为 Bet
实体提供引用。
Identity 框架非常复杂,简单地将其实体移动到我的数据模型中是不可能的。现在,我已经将我的数据模型移到客户端项目中,与身份代码相同,但如果有一种相对简单的方法可以克服这个问题,我不想继续这样下去。如果存在不需要几天努力的解决方案,它们是什么?
您能否尝试将 ApplicationUser 对象移出 MVC 项目并将其移至您的新项目中。这样一来,您所有的模型都在一个项目中,您的 MVC 应用程序可以只引用一个数据项目?
OP 编辑: 只是一个警告:如果将 ApplicationUser
移动到您自己的数据模型中,则必须从 [= 派生 DbContext
12=],而不是普通的旧 DbContext
,在 OnModelCreating
中调用 base.OnModelCreating(modelBuilder)
至关重要。通常基本方法没有实现,但这里它有大约 70 行配置代码,对于这个数据模型来说是必不可少的。