我有一个数据库,用于保存日历,这些日历分布在几个表中,每个表使用FK ...
一切正常但现在我想能够说出
根据日历ID:62
创建一个包含所有功能的新日历
我尝试了一种方式但是很糟糕,女巫正在浏览我的所有存储库Update
区域并触发每个onde,这将在每个表格上创建新内容......
是否有更快的解决方案?
我们可以简单地说的一种方式
db.Entity<Calendar>(CalendarId).CloneAsNew();
所以我最终会:
[Table Calendars]
calendar_id Name Url
62 Cal_A url_A
74 Cal_A url_A
[Table CalendarContents]
content_id calendar_id type img_background img_top
14 62 1 bkg.png top.png
26 74 1 bkg.png top.png
之前只有一个日历,如
[Table Calendars]
calendar_id Name Url
14 Cal_A url_A
[Table CalendarContents]
content_id calendar_id type img_background img_top
14 62 1 bkg.png top.png
P.S。如果你分开并再次附上它,如
context.Detach(entity);
entityCollection.Add(entity);
我们放弃了所有引用: - /
答案 0 :(得分:0)
试试这个:(使用EF 4.1)
使用查询中的NoTracking扩展方法检索要复制的日历。 然后将Id更改为0并执行do:
Context.Entry(calendar).State = EntityState.Added;
Context.SaveChanges();
答案 1 :(得分:0)
EF没有提供克隆实体图的任何方法。此时你需要通用解决方案: