4

我的域模型及其关联如下:

  • Customer有很多Regions
  • Region有很多Locations

我们的客户向我们提供了一个包含以下列的 CSV 文件:

  • 顾客姓名
  • 地区名称
  • 地点名称
    • 纬度
    • 经度
    • ...

基于这些信息,我必须按名称查找或创建客户,按名称查找或创建区域,最后按名称查找或更新位置。

我尝试了以下方法:

var customer = from c in _data.Customer
               where c.Name == cells[0]
               select c;

if (customer == null)
    customer = new Customer(...);

我将遵循相同的模式来查找或创建/更新区域和位置,但是,我遇到的问题是 LINQ 查询的类型无法在线转换为Customer-object customer = new customers();。我需要customer稍后引用这个对象,所以我不能有两个单独的变量。

我将如何在实体框架中实现这一点?

4

2 回答 2

5

这段代码

var customer = from c in _data.Customer
               where c.Name == cells[0]
               select c;

返回所有具有Nameequals的客户,cells[0]因此返回类型将IQueryable<Customer>不是单一Customer的(这就是customer = new Customer(...)不起作用的原因)。

FirstOrDefault如果您SingleOrDefault想找回一个Customer.

所以这应该有效

var customer = (from c in _data.Customer
               where c.Name == cells[0]
               select c).SingleOrDefault();
于 2012-06-05T05:49:27.327 回答
2

试试这个

var customer = (from c in _data.Customer
               where c.Name == cells[0]
               select c).FirstOrDefault();

if (customer == null)
    customer = new Customer(...);
于 2012-06-05T05:48:54.107 回答