C# - 实体框架插入

时间:2011-08-25 15:46:28

标签: c# entity-framework

我有两个表类别和产品,我想将产品分类。这些表之间的表关系是zeor或one表之间的关系。

分类表:

CID : integer,
CategoryName : varchar,

产品表:

CID: integer, // foreign key to category table.
ProductName: varchar,
UnitsInstock: integer,

如何编写将产品插入ProductTable的简单查询?如何处理外围关键情况?如果categoryid不存在,则不应插入产品。

我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

通常产品的类别是多对一的,但我建议首先研究Linq到Sql的基础知识:

http://msdn.microsoft.com/en-us/library/bb425822.aspx

Linq to Sql 101

Learn the Entity Framework

答案 1 :(得分:0)

一种方法可能就是这个:

int categoryIdOfNewProduct = 123;
using (var context = new MyContext())
{
    bool categoryExists = context.Categories
        .Any(c => c.Id == categoryIdOfNewProduct);

    if (categoryExists)
    {
        var newProduct = new Product
        {
            Name = "New Product",
            CategoryId = categoryIdOfNewProduct,
            // other properties
        };

        context.Products.Add(newProduct); // EF 4.1
        context.SaveChanges();
    }
    else
    {
        //Perhaps some message to user that category doesn't exist? Or Log entry?
    }
}

它假定您的CategoryId实体上有外键属性Product。如果您没有,请说明更多细节。