问题:

Artist artmodel = new Artist();
artmodel.user = uinfo;
_artiests.Add(artmodel);

新增一条Artist记录,但是同时数据库也新增 了一条User用户记录

解决:http://q.cnblogs.com/q/62950/

需要再查一遍当前用户信息

Artist artmodel = new Artist();
artmodel.user = _users.FindByLoginName(uinfo.LoginName);
_artiests.Add(artmodel);

------------------------------------

2014-07-01补充:当在实体类Artist中User属性没有加virtual情况下还是会新增一条相同的用户记录

------------------------------------

2015-03-23补充

使用不同上下文对象,测试一下:

  static void Main(string[] args)
{
User currLogin;
using (DB db = new DB()) {
currLogin = db.User.FirstOrDefault(u=>u.ID==1);
} using (DB db = new DB()) {
Album album = new Album();
album.Title = "默认相册";
album.CreateTime = DateTime.Now;
album.Owner = currLogin;
db.Album.Add(album);
db.SaveChanges();
} Console.ReadKey();
}

插入结果,Owner_ID居然不是“1”(我的Id是1),而是在User表新增了一条跟userId=1相同的数据

使用Sql server profilter跟踪,savechange()  确实可以看到有两条插入语句

当将Owner改为

album.Owner = db.User.FirstOrDefault(u => u.ID == currLogin.ID);

结果就正常了

结论:使用不同db对象时会创建新的记录(EF最让人不爽的地方,导航属性硬是要查再一遍????????????????????????????????????)

------------------------------------------

Entity Framework 插入数据出现重复插入(导航属性硬是要查再一遍???????)的更多相关文章

  1. AGS中通过FeatureServer插入数据失败、插入数据在WMTS请求中无法显示以及version概念的讨论

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在多个项目中,当我方接口给其他部门人员使用时出现了插入数据失 ...

  2. Entity Framework CodeFirst数据迁移

    前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是“Database First”还是“Model First”当模型发生改变了都可以通过Visual ...

  3. Entity Framework问题:ReferentialConstraint 中的依赖属性映射由存储生成的列

    原文:Entity Framework问题:ReferentialConstraint 中的依赖属性映射由存储生成的列 今天在采用Entity Framework 的Database First反向以 ...

  4. Entity Framework与ADO.NET批量插入数据性能测试

    Entity Framework是.NET平台下的一种简单易用的ORM框架,它既便于Domain Model和持久层的OO设计,也提高了代码的可维护性.但在使用中发现,有几类业务场景是EF不太擅长的, ...

  5. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  6. ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  7. 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

    首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...

  8. IT题库2-LinkList和ArrayList(插入数据、末尾插入数据、不同数据量插入数据)的效率?

    ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references).ArrayList是List接口的一个实现类,它的特点是查询效率高,增删效率低,线程不安全,原因 ...

  9. 论 微服务 和 Entity Framework 对 数据 的 割裂

    微服务 的 本质 是 面向对象, 微服务 是 面向对象 对 数据中心 发起的挑战, 在 微服务 架构下, “数据为中心” 的 传统架构 被 严重 割裂, 微服务 的 先天矛盾, 是 对象 和 数据 的 ...

随机推荐

  1. CLRS:Insert sort in in c

    #include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define ...

  2. SVN与TortoiseSVN实战:冲突详解(一)

    硬广:<SVN与TortoiseSVN实战>系列已经写了三篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,第二篇<SVN与TortoiseSVN实战:标签 ...

  3. Windbg CLR基础小测 《第六篇》

    首先写一段代码如下: namespace ConsoleApplication3 { class Program { static void Main(string[] args) { Console ...

  4. [zt]Which are the 10 algorithms every computer science student must implement at least once in life?

    More important than algorithms(just problems #$!%), the techniques/concepts residing at the base of ...

  5. NSString常见用法总结

    //====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...

  6. facelets标签

    facelets标签 <ui:component>标签用于JSF组件树中插入一个uicomponent实例,并作为它包含的的组件和内容片断的根节点,这视图中这个标签以外的的内容被编译器忽略 ...

  7. aspx网页相对布局

    网页的布局 <body bgcolor="#b6b7bc"> <form id="form1" runat="server" ...

  8. 如何更新Linux源

    首先需要自己收藏几个可以得到Linux源的站点,比如:http://mirrors.163.com/ (163的镜像站):可以百度搜索[Linux镜像站]: 下面这些镜像站,转自:http://www ...

  9. 三国塔防游戏android源码

    三国塔防游戏源码,这个游戏源码比较完整的,因为上传有20M限制,把代码工程包分开了,主文件是TFGame,其他res大家按照安卓包加进去就行,欢迎下载并交流 ,大家可以参考一下吧.<ignore ...

  10. leetcode2:Add Two Numbers

    Add Two Numbers Total Accepted: 55216 Total Submissions: 249950My Submissions You are given two link ...