Entity framework 4 使用实体框架4.1从Excel更新数据库
我是EF4.1新手,尝试将一些代码从EF 4.1迁移到EF 4.1(代码优先)。以下是一些背景。我为几家公司管理产品,所以我有一个表“Product”,其中有一列名为“Company”。我需要从包含给定公司(比如C1)产品的Excel文件中更新(如果不存在,则插入,否则更新)此表。下面是我正在做的事情(使用专有的db访问代码和LINQ):Entity framework 4 使用实体框架4.1从Excel更新数据库,entity-framework-4,Entity Framework 4,我是EF4.1新手,尝试将一些代码从EF 4.1迁移到EF 4.1(代码优先)。以下是一些背景。我为几家公司管理产品,所以我有一个表“Product”,其中有一列名为“Company”。我需要从包含给定公司(比如C1)产品的Excel文件中更新(如果不存在,则插入,否则更新)此表。下面是我正在做的事情(使用专有的db访问代码和LINQ): 检索公司C1的所有产品作为产品列表 对于Excel中显示的每个产品: 如果Excel中的产品已存在,则搜索已加载的产品列表 如果产品不存在,则: 创建新产
- 检索公司C1的所有产品作为产品列表
- 对于Excel中显示的每个产品:
- 如果Excel中的产品已存在,则搜索已加载的产品列表
- 如果产品不存在,则:
- 创建新产品实例
- 将产品添加到数据库
- 将产品添加到加载的产品列表中 否则
- 更新数据库中的产品
Christian以下是你如何做到这一点的粗略概述 EF缓存加载的实体。您可以使用属性来访问它。添加新实体时,EF将修改此集合
context.Products.Where(p => p.Company == "C1").ToList();//force EF to load products
while(/*loop through excel file)
{
var product = context.Products.Local.Where(p=> p.Id == excelProductId);
if (product == null)
{
//insert
}
else
{
/update
}
}
context.SaveChanges();
这个“本地”房产正是我一直在寻找的。完美的