【发布时间】:2012-01-03 17:09:20
【问题描述】:
我在使用 http://www.codeproject.com/KB/architecture/RepositoryUnit.aspx 的通用存储库时遇到了一些问题
“FetchEntityName”中有一行代码似乎对某些实体崩溃,而不是对其他一些实体,它们都以同样的方式变得艰难!。
我把范围缩小到这个手表表达式返回 false。 (我将 18 作为索引器,因为那是似乎效果不佳的实体(组)之一)
typeof(IQueryable<>).MakeGenericType(typeof(T)).IsAssignableFrom(this.ObjectContext.GetType().GetProperties()[18].PropertyType)
返回错误! 左侧:
typeof(IQueryable<>).MakeGenericType(typeof(T))
在手表中返回:
{Name = "IQueryable`1" FullName = "System.Linq.IQueryable`1[[Domain.Groep, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"} System.Type {System.RuntimeType}
右侧:
this.ObjectContext.GetType().GetProperties()[18].PropertyType
在手表中返回:
{Name = "ObjectSet`1" FullName = "System.Data.Objects.ObjectSet`1[[Contacts.Groep, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"} System.Type {System.RuntimeType}
英文?
为什么我的 EDMX 中的某些实体不能将 ObjectSet 和 IQueryable 相互分配?
【问题讨论】:
-
我不是 100%,但我想这可能与 GetType() 返回说“产品”有关,但您的 ObjectContext 需要复数“产品”。
-
我会调查的。我刚刚注意到这可能是一些奇怪的命名空间问题,因为我可以看到 Queryable 和 ObjectSet 对 Group 有不同的命名空间!
标签: c# entity-framework generics reflection