我在EF6中有一个代码,想将其翻译为EF Core。 EF Core中等效的SqlFunction.Difference是什么?
public virtual IEnumerable<Role> GetSimilarRoles(string soundsLike)
{
return Get(x => SqlFunctions.Difference(x.Name, soundsLike) >= 3, q => q.OrderBy(o => o.Name));
}
答案 0 :(得分:3)
当前,EF Core中没有与之相对应的即装即用产品。
但是可以使用EF Core 2.0+ Database scalar function mapping轻松添加,例如
public static class SqlFunctions
{
[DbFunction("DIFFERENCE", "")]
public static int? Difference(string s1, string s2)
=> throw new NotSupportedException();
}
流利的配置(对于未通过DbContext
派生类公开的功能来说是必需的)
modelBuilder.HasDbFunction(() => SqlFunctions.Difference(default, default));
答案 1 :(得分:1)
我认为没有等效的选项,但是EF Core通过 EF.Functions
public static bool Like (this Microsoft.EntityFrameworkCore.DbFunctions _, string matchExpression, string pattern);