如何在Entity Framework中映射CONTAINSTABLE函数(代码优先)?

TN.*_*TN. 8 c# sql-server full-text-search entity-framework ef-code-first

感谢https://codefirstfunctions.codeplex.com/,现在可以在Entity Framework中映射函数(代码优先).我正在尝试映射CONTAINSTABLE函数.如何通过table论证?

使用泛型可能是好的:

db.ContainsTable<MyEntity>(myTerm)
Run Code Online (Sandbox Code Playgroud)

可以翻译成:

SELECT * FROM CONTAINSTABLE(MyEntities, *, @myTerm)
Run Code Online (Sandbox Code Playgroud)

我应该以某种方式使用CreateQuery吗?

(有一些较旧的尝试:[1]和hacky [2].但是使用EF 6.1和CF函数,我试图找到更干净的东西.)

Meh*_*nas 0

您可以使用 DataTable 来实现它。

  1. 创建“数据表” var dt=new DataTable()
  2. 创建表的列和行
  3. 创建参数

    var dtparameter = new SqlParameter("paramname", SqlDbType.Structured);
    dtparameter.Value= dt;
    dtparameter.TypeName = "dbo.udt_tableName";
    
    Run Code Online (Sandbox Code Playgroud)

将此参数传递给实体框架以调用表值参数。