我有類似下面的類:實體框架代碼優先布爾外鍵
public sealed class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string Id { get; private set; }
[Required] public string GroupId { get; set; }
[Required] public bool IsAdmin { get; set; }
}
而另:
public sealed class Group
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string Id { get; private set; }
[ForeignKey("GroupId")]
public List<User> Users { get; set; }
}
的User
類的IsAdmin
屬性表示是否該用戶是管理員。我想要做的是一個新的屬性添加到Group
:
public List<User> Admins { get; set; }
這個新的列表將包含是他們組的管理員的所有用戶,這意味着他們的財產IsAdmin
具有價值true
。我已經使用自定義的getter此屬性,像這樣考慮:
public List<User> Admins
{
get
{
return this.Users.Where(user => user.IsAdmin);
}
}
不過,我想知道,如果實體框架可以照顧這對我來說。在我的腦海中,我可以想像它使用IsAdmin
的方式類似於用於Users
列表,其中具有User.GroupId = "foo"
的每個用戶都包含在Group.Id = "foo"
組的Users
列表中。
所以我的問題是,我如何告訴EF使用用戶的IsAdmin
屬性作爲外鍵填充Admins
?
你應該堅持財產'清單管理員'。當你已經有了一些可行的東西時,爲什麼複雜化呢?簡單更好。 –
JuanR
由於管理員「是」用戶,您可以使用[繼承](http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx) –
*我想知道如果實體框架可以爲我照顧這個*目前的答案沒有明確說明它,但是這個問題的答案是「否」。 –