【问题标题】:asp.net Entity Framework 6.0 - What Context Generator should I be using?asp.net Entity Framework 6.0 - 我应该使用什么上下文生成器?
【发布时间】:2014-01-03 14:19:42
【问题描述】:

改写问题:

我需要升级到 6.0 实体框架。我使用 EF 6.x 实体对象生成器来创建一个新的上下文。现在,我得到一个语法错误。似乎生成的代码现在生成了一个 ObjectContext 而不是更新的 DBContext。

这是不再有效的代码。

public abstract class Base<T> where T : class {
    public static void save(T entity) {
        using (var context = new DataContext()) {
            context.Entry(entity).Member("Changed_Date").CurrentValue = DateTime.Now;
            context.Entry(entity).Member("Changed_User").CurrentValue = userId;
            context.SaveChanges();
        }
    }
}

问题是:条目(在基类中)现在与生成的代码一起使用时会出现编译错误。

数据上下文(sn-ps):

using System;
using System.ComponentModel;
using System.Data.Entity.Core.EntityClient;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Core.Objects.DataClasses;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;

[assembly: EdmSchemaAttribute()]
#region EDM Relationship Metadata

#endregion

namespace DB
{
    public partial class encludeDataContext : ObjectContext
    {
    }
}

我应该使用哪个生成器?

【问题讨论】:

  • 请发布确切的编译器错误信息!
  • 谢谢@nemesv:错误 493 'DataContext' 不包含 'Entry' 的定义,并且找不到接受类型为 'DataContext' 的第一个参数的扩展方法 'Entry'(您是否缺少使用指令还是程序集引用?)
  • 它是System.Data.Entity.DbContext的普通成员,请检查(并发布)您的DataContext的定义。
  • 检查您的引用是否指向正确的二进制文件。
  • 问题是DataContext有482160行!这是 edmx 自动生成的代码。但我在原帖中添加了一个 sn-p。

标签: c# entity-framework dbcontext member


【解决方案1】:

在 EF6 中执行了一些解耦。

public DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class

在图书馆System.Data.Entity

System.Data.Entity 在两者中 EntityFrameworkSystem.Data

注意命名空间

Context.Entry(entity).Member("Changed_Date").   //.... should be Ok

【讨论】:

  • True dat... 我想我已经解决了这些问题。看来我应该问一个更明确的问题...如何让生成器创建 DBContext 而不是 ObjectContext。
  • 你有一个模型生成的上下文。 ?所以在ef6下重新生成
  • 我想我正在使用 EF 6.x EntityObject Generator。
  • 我正在思考问题示例代码和标题与实际问题不匹配。问题是否应该“重做”?
  • 我认为你们 cmets 让我更接近真正的问题......我可能使用了错误的上下文生成器,应该使用其他东西,如 Reverse POCO 或 CodeFirst。
猜你喜欢
  • 2014-12-28
  • 1970-01-01
  • 2011-01-30
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2011-05-20
相关资源
最近更新 更多