【发布时间】:2012-11-23 21:18:07
【问题描述】:
我花了很长时间弄清楚如何将这样的实体添加到我的数据库中。
public class ThingWithListings
{
public virtual ICollection<Listing> Listings;
}
public class Listing
{
public int Id;
public virtual ListingData Data { get; set; } // has a FK to ListingData
public DateTime Creation { get; set; }
}
public class ListingData
{
public int listing_id; // PK
....
}
我正在从另一个来源检索“ThingWithLIstings”并将其写入我的数据库。棘手的部分是任何数量的列表都可能报告给相同的列表数据。所以当我添加或更新一个 ThingWithListings 时,我需要查看一个 ListingData 是否已经存在,如果存在,就使用那个。
我是 EF 的新手,所以我一直在使用作者 Vickers 的文章 here 中的 AddOrUpdate:显然,这不适用于这种情况,所以我尝试了一天左右的时间来弄清楚找出正确的方法来做到这一点。我会把我主要失败尝试的所有故事都告诉你,希望有人能告诉我正确的方法。
【问题讨论】:
-
不幸的是,您很可能必须查询整个表来检查每个值是否有重复。如果有比这更好的方法,我想听听。
-
因此,来自批量传入数据的
listing_ids 可能已经或可能不在ListingData 表中。对吗? -
你在
Listing中有listing_id(顺便说一下,这个名字很混乱)吗?
标签: c# entity-framework duplicates