ObjectParameter:传递值与类型

时间:2017-02-07 21:07:04

标签: c# entity-framework

enter image description here

我们何时应该传递一个Value,何时应该将Type传递给ObjectParameter的构造函数?为什么?

当尝试从存储过程中获取SQL OUTPUT值时,例如,传递值0,1,2等或typeof(long)似乎没有区别。

var ob = new ObjectParameter("CustomerID", typeof(long));
// or new ObjectParameter("CustomerID", 0)
// both work
db.InsertCustomer(ob, "CustomerName");
var CustomerID = ob.Value;

2 个答案:

答案 0 :(得分:2)

这取决于您在调用构造函数时可用的信息。所有3,名称,值和类型都可以作为对象的属性使用,可以在代码中稍后设置。

您可能需要创建参数对象,您知道名称和类型,但您可能会在以后获得该值。在这种情况下,您可以调用ObjectParameter(String, Type)构造函数。

如果您在创建对象时拥有名称和值,那么ObjectParameter(String, Object)可能会更有用。

答案 1 :(得分:1)

var ob = new ObjectParameter("CustomerID", typeof(long));
var ob2 = new ObjectParameter("CustomerID", 0);

不应该与int相同,而且只有long

在您的情况下,在您获取数据的情况下,如果您使用某种类型的值,则无关紧要。但是,在我看来,使用类型使其更加冗长,更易于阅读和更容易理解。它可以防止任何错误,如int vs long。