【发布时间】:2015-08-03 16:10:01
【问题描述】:
我正在制作一个网站,有两个数据库,一个用于我的应用程序,另一个用于外部应用程序。通过外部,我的意思是它是我想要使用的开源应用程序。申请是MVCForum
此外部应用程序已集成成员资格。它使用依赖注入(Unity)并使用实体框架。显然我不想破坏该项目,并且希望能够让我的应用程序与 MVCForum 一起运行,这样当/如果它得到更新时,我可以运行更新而不会遇到太多麻烦并且不会影响我的应用程序。
那么,问题来了:
我有一个应用程序的 MembershipUser 类部分,称之为 externamApp。
namespace MVCForum.Domain.DomainModel
{
public partial class MembershipUser : Entity
{
public MembershipUser()
{
Id = GuidComb.GenerateComb();
}
public Guid Id { get; set; }
public string UserName { get; set; }
public virtual IList<MembershipRole> Roles { get; set; }
//I need to have this. A user has one or many trips
public virtual IList<Trip> Trips{ get; set; }
}
}
我也有自己的应用程序,我们称之为 myApp。在我的应用程序中,我有一个名为 Trip 的类。
namespace MyApp.Domain.DomainModel.TripModels
{
public partial class Trip : Entity
{
public Trip()
{
Id = GuidComb.GenerateComb();
}
public Guid Id { get; set; }
public virtual MembershipUser User { get; set; }
public virtual TCCategory Category { get; set; }
}
}
如您所见,MembershipUser 有一个属性:
public virtual IList<Trip> Trips{ get; set; }
这是因为用户可以进行一对多行程... 你还可以看到 Trip 有一个属性:
public virtual MembershipUser User { get; set; }
但是,我还希望有一个用户附加到我的 Trip 类。 当实体框架从数据库中提取一个对象时,它会与该对象链接所有子对象。例如,当它取出 MembershipUser 时,它将附加该用户的所有角色 - 因为这个属性(显然还有映射):
public virtual IList<MembershipRole> Roles { get; set; }
我意识到这是一个循环引用,但我希望有更多知识的人可以提供一个好的建议,甚至是一个解决方案。
【问题讨论】:
-
您使用哪种身份验证?表格?
-
@DiogoCunha 是的,表格。
-
我回答了你问的问题,但是如果你只是想分享课程或者你也想分享身份验证,我无法得到,你能帮我回答一下吗?跨度>
标签: c# entity-framework dependency-injection circular-reference