我们何时应该传递一个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;
答案 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。