【问题标题】:Why does this line of generic code work for one entityobject but not for another?为什么这行通用代码适用于一个实体对象而不适用于另一个?
【发布时间】: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


【解决方案1】:

我有第二个 EDMX,其中包含一个 groep 实体,它造成了所有这些麻烦。

简单地删除重复的实体修复它-;)

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2023-01-25
    相关资源
    最近更新 更多