我在模型浏览器中的功能导入下有2个存储过程,比如说 ProcA 和 ProcB ,每个都有自己的复杂类型,分别说 TypeA 和 Type2 。
TypeA属性:
unsigned char& operator[](__int64 i)
{
...
}
TypeB属性
Int32 SomeId;
String PersonName;
String PersonAddress;
一切都很好,功能齐全,除非我尝试将 TypeA 嵌套到 TypeB 中, TypeB 基本上是 TypeA 的副本,另外还有2个附加属性。
TypeB属性
Int32 SomeId;
String PersonName;
String PersonAddress;
Int32 Age;
Int32 Height;
ProcA工作正常但是当我调用ProcB时会引发异常:
错误:准备命令定义时发生错误。看到 细节的内在例外。
Message =“ReturnType中的嵌套ComplexType属性'TypeA' 不支持函数'ProcB'的'TypeB',请考虑 展平嵌套的ComplexType属性。“
我是否必须使用扁平复杂类型并且在我的情况下无法进行嵌套?
我只是想减少代码行并强制重用。
对此的任何输入都会很棒。 如果我能提供更多信息,请告诉我。
PS:DB.Context.cs文件中出现错误
Int32 Age;
Int32 Height;
TypeA TypeAObj; // nesting typeA here
答案 0 :(得分:1)
这不起作用。从EF 6.0开始,它不受支持。
查看此链接。该属性为此错误背后的问题提取了本地化字符串,它仍然存在于EF 6.0中:
版本历史记录并未表明他们已解决此问题:
https://msdn.microsoft.com/en-us/library/jj574253(v=vs.113).aspx
我发现一个回到2010年的帖子说“它在积压中”:
使用VS2013和最新的EF进行的快速本地测试证实了这一点: