0
我有個小問題與EF,我不知道怎麼解釋,所以我只舉一個例子:虛擬ICollection的延遲加載實體框架與模型構造器
這裏是我的對象:
public class User
{
public int UserId { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
// Need model builder example for this one
public virtual ICollection<Event> Events { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
public class Event
{
public int EventId { get; set; }
public int TagId { get; set; }
public virtual Tag Tag { get; set; }
}
是否有可能通過'Event.Tag.User'延遲加載/映射虛擬ICollection'User.Events'而不進行任何數據庫表更改?
2014年3月7日
下面是一個例子SLQ子句,其中用戶ID與用戶1:
SELECT Events.EventId
FROM Events
INNER JOIN Tags ON Tags.TagId = Events.TagId
INNER JOIN Users ON Users.UserId = Tags.UserId
WHERE Users.UserId = 1
我不知道,但我正在尋找,也許是這樣的:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasMany(user => user.Events).WithMany(...
}
當您嘗試訪問它時會發生什麼?你能舉一個你如何做這個例子嗎? – elolos
好吧,當添加到用戶類: 公共虛擬ICollection事件{get;組; } EF將'User_UserId'字段添加到'Events'表中,然後修改數據庫表。 : -/ –
soreal
好吧,如果我理解正確,你想添加Events屬性給用戶,但不更改Events表? – elolos