gpt4 book ai didi

c# - Entity Framework 4.2“该类型不具有 EdmEntityTypeAttribute 属性,但包含在具有 EdmSchemaAttribute 属性的程序集中

转载 作者:太空狗 更新时间:2023-10-29 18:16:42 27 4
gpt4 key购买 nike

我收到以下错误:

System.InvalidOperationException was unhandled Message=The type 'Judge' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute.
Source=EntityFramework StackTrace: at System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(Type entityType) at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)....

 public class GenericRepository<TEntity> where TEntity : class
{
internal z context;
internal DbSet<TEntity> dbSet;

public GenericRepository(z context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}

public GenericRepository()
{
this.context = new z();
this.dbSet = context.Set<TEntity>();
}

public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{

IQueryable<TEntity> query = dbSet;

if (filter != null)
{
query = query.Where(filter);
}

foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}

if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList(); //Getting error here!!
}
}

public virtual TEntity GetByID(object id)
{
return dbSet.Find(id);
}

public virtual void Insert(TEntity entity)
{
dbSet.Add(entity);
}

public virtual void Delete(object id)
{
TEntity entityToDelete = dbSet.Find(id);
Delete(entityToDelete);
}

public virtual void Delete(TEntity entityToDelete)
{
if (context.Entry(entityToDelete).State == EntityState.Detached)
{
dbSet.Attach(entityToDelete);
}
dbSet.Remove(entityToDelete);
}

public virtual void Update(TEntity entityToUpdate)
{
dbSet.Attach(entityToUpdate);
context.Entry(entityToUpdate).State = EntityState.Modified;
}

public virtual void Save()
{
context.SaveChanges();
}
}

奇怪的是 Judge 具有 EdmEntityTypeAttribute 属性,因为它是作为 DbContext T-4 jazz 的一部分自动生成的。

    /// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmEntityTypeAttribute(NamespaceName="standaloneModel", Name="Judge")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Judge : EntityObject
{

有一次我在另一个集会上确实有另一个类(class)法官,但我已经重命名了它。我试过清理这两个项目。除了 EF 之外,应该没有其他 Judge 类。

所以我不知道其他 Judge 类是从哪里来的??

谢谢

最佳答案

想通了。

当我第一次启动程序时,我使用的是带有 .edmx 的 ObjectContext。

然后我阅读了有关 EF 4.2 的信息并决定使用 DbContext。

问题是我的 .edmx 文件正在生成类,以及 DbContext T-4s。

解决方案是关闭 .edmx 中的代码生成。

所以现在,只有 DbContext T-4 正在生成我的 POCO 类。

希望这个问题对以后的其他人有所帮助!

关于c# - Entity Framework 4.2“该类型不具有 EdmEntityTypeAttribute 属性,但包含在具有 EdmSchemaAttribute 属性的程序集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com