【问题标题】:How to map a List<int> to a ModificationMapping SP for Insert in EF4?如何将 List<int> 映射到 ModificationMapping SP 以在 EF4 中插入?
【发布时间】:2011-08-22 16:45:42
【问题描述】:

我有一个实体

Entity
{
    int Id;
    object otherProperties;
    List<int> ForeignIds;
}

我写了一个插入 SP,需要:

@Id INT,
@ForeignId INT

如何将列表映射到 SP 以进行修改映射,该修改映射将为 ForeignId 中的每个元素插入一行包含 Id 和来自 ForeignIds 的元素?

例如

Entity(){ id=1; ForeignIds = new List<int>(){2,3};}

将插入:

标识 |外国身份证
1 | 2
1 | 3

【问题讨论】:

    标签: entity-framework entity-framework-4 mapping entity-framework-mapping


    【解决方案1】:

    你不能映射这个。 EF 不理解 List 的标量类型。您必须手动迭代列表并为集合中的每个项目执行存储过程。您可以将过程映射为函数导入或通过objectContext.ExecuteStoreCommand直接执行。

    【讨论】:

    • 谢谢 Ladislav,声明param Object[] 的语法是什么? MSDN 文档中没有关于它的任何内容。
    • 既然 SP 已经存在,objectContext.ExecuteFunction 会是更好的选择吗?
    • 你可以传递SqlParameter的数组
    • 如果您进行函数导入,您应该有一个方法来调用在您的上下文中公开的导入。该方法在内部调用ExecuteFunction 来调用导入的存储过程。
    • 我已经从数据库中更新了模型并包含了 SP,并且可以在 name.Store\Stored Procedures 下的模型浏览器中看到它,它是否应该作为 objectContext 上使用点符号的方法存在?
    猜你喜欢
    • 2017-06-17
    • 2017-08-29
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2021-12-21
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多