我有兩個模型 - 一個公告,其中有些人可以發佈公告和一個看到的模型,確定是否有人看到該公告。她EIS型號:EntityCommandExecutionException - 試圖鏈接1個數據庫中的2個模型
宣佈:
public class Announcement
{
public int AnnouncementId { get; set; }
public string AnnouncementContent { get; set; }
public virtual ApplicationUser User { get; set; }
}
,看到:
public class Seen
{
public int SeenId { get; set; }
public virtual Announcement Announcement { get; set; }
public virtual ApplicationUser User { get; set; }
}
在我AnnouncementController.Index
我有這樣的代碼,幾乎應該是,如果您查看此頁,標出每個公告如所見b但在「新看到」部分出現錯誤:
public ActionResult Index()
{
string currentUserId = User.Identity.GetUserId();
var currentUser = db.Users.FirstOrDefault(x => x.Id == currentUserId);
if(db.Announcements != null)
{
foreach (Announcement anoun in db.Announcements)
{
new Seen
{
User = db.Users.Add(currentUser),
Announcement = db.Announcements.FirstOrDefault(x => x.AnnouncementId == anoun.AnnouncementId),
};
}
}
return View(db.Announcements.ToList());
}
已經有一個與此命令關聯的打開的DataReader,它必須先關閉。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public DbSet<Announcement> Announcements { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Seen> Seens { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
當你有一個錯誤,你問一個有關該錯誤的問題,你需要包括該錯誤。在這種情況下,它被稱爲[Exception](https://msdn.microsoft.com/en-us/library/system.exception(v = vs.110).aspx)(*這是如何在.net中顯示錯誤*)。包括消息,類型,StackTrace,並在整個InnerExceptions中向下重複這個遞歸。使用您問題上的編輯鏈接來包含該詳細信息,不要將其作爲評論。另請閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。 – Igor