我有一些使用“数据库优先”映射在Entity Framework中的存储过程。它会创建强类型方法,您可以调用以运行存储过程。然而,我遇到了一个重大问题,在这种情况下我没有看到任何方法可以调用这些由默认参数定义所创建的方法。这意味着:
a)我必须手动添加默认参数到方法调用中,如果默认参数值更改,那么这种方式是脆弱的。
b)手动编写方法重载。这基本上消除了从数据库生成模型的好处。
是否有人知道是否有更好的解决方案来解决这个问题?
谢谢。
我有一些使用“数据库优先”映射在Entity Framework中的存储过程。它会创建强类型方法,您可以调用以运行存储过程。然而,我遇到了一个重大问题,在这种情况下我没有看到任何方法可以调用这些由默认参数定义所创建的方法。这意味着:
a)我必须手动添加默认参数到方法调用中,如果默认参数值更改,那么这种方式是脆弱的。
b)手动编写方法重载。这基本上消除了从数据库生成模型的好处。
是否有人知道是否有更好的解决方案来解决这个问题?
谢谢。
NULL
,然后在过程体中将 NULL
参数替换为所需的默认值。然后在使用EF的代码中,你可以传递 null
来指示使用默认值。这样至少默认值仅在SP本身中定义。NULL
成为一个“out-of-band”值,这意味着你实际上不能将其传递给SP(除了必须更改你的SP,并确保所有未来的SP都使用这种奇怪的约定)。