我有一个表值函数,它返回包含复杂类型的实体。我试图找出将此数据作为实体加载到我的代码优先应用程序中的最佳方法。
我尝试了Code First Functions项目,但它不支持具有复杂类型的实体。
我也试过SqlQuery
,例如,
context.MyEntities.SqlQuery("SELECT * FROM [TableValuedFunction]()")
但这显然也不支持复杂类型。我得到一个InvalidOperationException
说,“只支持原始或枚举类型的属性。”
我的用例非常有限,因为这将是只读数据。我不需要更改跟踪甚至IQueryable
实例之类的东西。我可以只使用一个我显示然后丢弃的实体。
我想我可以通过执行 SQL 来“手动”解决这个问题,将数据返回到 a 中DataTable
,然后使用它来创建我的实体。但这显然是不可取的,原因有很多,尤其是它基本上完全放弃了实体框架。
有没有其他方法可以以更自动化的方式创建我的实体?
这是一个使用 Code First Functions 项目但失败的简单示例。