zhpsdbx 2014-05-18 16:04 采纳率: 0%
浏览 2556

Entity Framework使用Code First 插入数据时,多出来额外的数据

在项目总使用Code First遇到坑爹的问题了
例如我有如下类:
public class Catalog
{
public Int32 ID { get; set; }
public String CatalogName { get; set; }
public Catalog() { }
public Catalog(Int32 ID, String Name)
{
this.ID = ID;
this.CatalogName = Name;
}
}

然后有另一个类引用该类:
public class CatalogClassify
{
public Int32 ID { get; set; }
public Catalog catalog { get; set; }
public String Name { get; set; }
public CatalogClassify(){ }
    public CatalogClassify(Int32 ID, Catalog catalog, String Name){
this.ID = ID;
this.catalog = catalog;
this.Name = Name;
}
}

这两个类都映射到数据库中并存储起来。
假如我已有一个Catalog对象映射到数据库其数据库中相应的数据为:{1,"MyName"};
而我现在要一个CatalogClassify对象也插入到数据中其代码为:
Catalog catalog = new Catalog(1,"MyName")
CatalogClassify myCatalog = new CatalogClassify(1,catalog,"TestName");
然后在将myCatalog对象插入到数据库中,这时会发现在Catalog对象对应的表中有两行数据,分别为{1,"MyName"},{2,"MyName"}.
但是这不是我想要的结果,我只是想让myCatalog对象引用一个已有的Catalog对象,而不是在数据库中创建任何新的数据了。
求大神提供解决方案啊

  • 写回答

1条回答

  • feiyun0112 2014-05-19 01:19
    关注

    这里就不要新建
    Catalog catalog = new Catalog(1,"MyName")

    而是从数据库把id=1的找出来

    评论

报告相同问题?

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了