我正在寻找一种方法来将逻辑上与表相关的存储过程映射为为该特定表生成的实体内的函数,而不是整个Context中的函数。
作为一个例子,我已经从现有的银行数据库中生成了edmx,我得到了一个Context和几个与表对应的实体。假设我们有账户,交易,地址等表...我有一个存储过程返回帐户的当前余额。我想将此存储过程映射到Account实体而不是上下文。这将帮助我调用Account.GetBalance()而不是Context.GetBalance()。
这在实体框架中是否可行?我做了大量的搜索,并在msdn中阅读了一些文章/博客,但找不到任何解决方案。
答案 0 :(得分:1)
除非你手动将暴露在实体中的上下文中的方法包装起来,否则这是不可能的 - 这将使你的实体持久感知和EF依赖,这当前被认为与人们应该遵循的设计完全相反。
就EF余额而言,应该是账户实体的财产,而检索余额应该是指在账户集/上下文中重新加载账户或执行预测查询(或您的程序)。查询也是从上下文和存储过程执行的。