为什么这一系列通用代码适用于一个实体对象而不适用于另一个实体代码?

时间:2012-01-03 17:09:20

标签: c# entity-framework generics reflection

我在使用http://www.codeproject.com/KB/architecture/RepositoryUnit.aspx

的Generic存储库时遇到了一些麻烦

“FetchEntityName”中有一行代码似乎对某些实体而不是某些其他实体崩溃,它们的制作方式同样艰难!。

我把它缩小到这个表达表达式返回false。 (我把18作为索引器,因为这是一个看起来效果不佳的实体(Group)之一)

typeof(IQueryable<>).MakeGenericType(typeof(T)).IsAssignableFrom(this.ObjectContext.GetType().GetProperties()[18].PropertyType)

返回false! 左侧:

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分配给彼此?

1 个答案:

答案 0 :(得分:1)

我有第二个EDMX包含一个groep实体,导致所有这些麻烦。

简单删除重复的权利修复了它 - ;)