ef mysql dbfunctions,sql-server – 如何编写EF.Functions扩展方法?

向EF.Function添加新的标量方法很简单 – 您只需在DbFunctions类上定义扩展方法.但是,提供SQL转换很困难,需要深入研究EFC内部.

但是,EFC 2.0还引入了一种更简单的方法,在New features in EF Core 2.0文档主题的数据库标量函数映射部分中进行了解释.

根据这一点,最简单的方法是在DbContext派生类中添加一个静态方法,并用DbFunction属性标记它.例如.

public class MyDbContext : DbContext

{

// ...

[DbFunction("SOUNDEX")]

public static string Soundex(string s) => throw new NotSupportedException();

}

并使用这样的东西:

string param = ...;

MyDbContext db = ...;

var query = db.Customers

.Where(e => MyDbContext.Soundex(e.LastName) == MyDbContext.Soundex(param));

您可以在不同的类中声明此类静态方法,但是您需要使用HasDbFunction fluent API手动注册它们.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值