使用POCO作为EntityFramework存储过程的参数对象

时间:2015-06-08 18:35:13

标签: c# entity-framework stored-procedures parameter-object

我想使用一个类示例:

public class ClassA
{
     public int ID {get;set;}
     public string Name {get;set;}
}

作为要传递给存储过程的参数对象。

这将是我的电话样本

List<ClassB> result = this.Database.SqlQuery<ClassB>("GetSomeList", ClassA).ToList<ClassB>();

存储过程中的参数名称将匹配&#34; ClassA&#34;的属性。

如果删除参数对象(ClassA),则调用正常并返回正确的结果。我宁愿不使用Entityframework设计器或将任何数据库属性添加到我的实体,因为它们是可重用的组件。 此外,如果此参数对象可用于保存也很好的输出参数。 我还没有找到任何关于使用POCO作为参数对象的好文档。

这与EntityFramework6 MVC5

有关

1 个答案:

答案 0 :(得分:0)

public static class DbExtensions {
  public static object[] ToObjectArray(this ClassA ca) {
    return new object[]{ca.ID,ca.Name};
  }
}

List<ClassB> result=this.Database
  .SqlQuery<ClassB>("GetSomeList", ClassA.ToObjectArray())
  .ToList<ClassB>();