实体框架仅通过密钥

时间:2016-05-09 15:13:45

标签: entity-framework entity-framework-6 many-to-many

假设您有一个最简单的教科书模型:

Product {
    Categories
}

产品可以与0到多个类别相关联。

假设类别与

类似
Category {
    int Id { get; set; }
    string Name {get; set; }
}

现在我想将我的产品与ids 1,2和3的(现有)类别相关联。无论如何创建此关联而不将类别1,2和3加载到内存中?

我知道这可以使用单个类别,其中我的产品型号上有Category和CategoryId。粘合多个项目是否有类似的约定?

重申一下,我的目的是避免查询类别。我已经有了标识符。使用直接sql我只能通过键轻松建立这些关系(事实上,关联表实际上只是键)。我想知道是否有“实体框架方式”这样做,或者直接sql是否是唯一的选择。

1 个答案:

答案 0 :(得分:1)

您可以使用id创建类别实例,并将它们附加到上下文中。然后,您可以添加到产品中,而无需从数据库中提取类别。

例如: -

var category = new Category { Id = 1 };
db.Categories.Attach(category);
product.Categories.Add(category);
db.SaveChanges();