如何在实体框架中映射 CONTAINSTABLE 函数(代码优先)?

Posted

技术标签:

【中文标题】如何在实体框架中映射 CONTAINSTABLE 函数(代码优先)?【英文标题】:How to map CONTAINSTABLE function in Entity Framework (code-first)? 【发布时间】:2014-05-16 22:17:11 【问题描述】:

感谢https://codefirstfunctions.codeplex.com/,现在可以在实体框架中映射函数(代码优先)。我正在尝试映射CONTAINSTABLE function。如何传递table 参数?

为此使用泛型可能会更好:

db.ContainsTable<MyEntity>(myTerm)

可以翻译成:

SELECT * FROM CONTAINSTABLE(MyEntities, *, @myTerm)

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

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

【问题讨论】:

你最后找到好的解决方案了吗? @Gavin 一些提示,但尚未尝试:codefirstfunctions.codeplex.com/discussions/541844 【参考方案1】:

你可以使用 DataTable 。

    创建 'DataTable' var dt=new DataTable() 在表中创建列和行

    创建参数

    var dtparameter = new SqlParameter("paramname", SqlDbType.Structured);
    dtparameter.Value= dt;
    dtparameter.TypeName = "dbo.udt_tableName";
    

将此参数传递给实体框架调用tablevalue参数。

【讨论】:

你的意思是msdn.microsoft.com/en-us/library/system.data.datatable.aspxDataTable?如何在实体框架的 LINQ 中使用它?

以上是关于如何在实体框架中映射 CONTAINSTABLE 函数(代码优先)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有主键实体框架的情况下映射表

如何在实体框架中创建多对多映射?

如何将一个自定义实体映射到实体框架中的某些数据库表?

如何指定实体框架核心表映射?

如何使用实体框架将字符串映射到 Uri 类型?

映射不区分大小写 - 代码优先 - 实体框架