【问题标题】:EntityDataSource with Code-First Entity Framework 4.1EntityDataSource 与 Code-First Entity Framework 4.1
【发布时间】:2023-04-02 13:47:04
【问题描述】:

我刚刚开始使用 Entity Framework 4.1 Code-First。我已经创建了我的课程和DbContext,它们工作得非常好。现在我想在EntityDataSource 的帮助下将我的ListView 绑定到我的实体,但不幸的是它无法识别任何可用的连接字符串!我认为 providerName 必须是 System.Data.EntityClient 才能工作,但我没有具体的实体模型可以参考...

我读到ObjectContext 可以从DbContext 中“改编”,而DbContext 又可以用来创建ObjectDataSource。但是,我想使用我的 DbContext 绑定到我的 ListView。有什么办法可以做到吗?

【问题讨论】:

标签: entity-framework entity-framework-4.1 ef-code-first dbcontext entitydatasource


【解决方案1】:

我很难理解您的问题...您想在实例化 Context 类时指定连接字符串,是吗?

您可以创建 DbContext 类的构造函数的重载,例如

public MyContext(string connString) : base (connString)
   {
      Database.SetInitializer(...
      ...
   }

然后,在 Code-First 方法中,您实际上并不需要 ObjectContext,除非是超级高级场景,而且我猜数据绑定不是其中之一。要绑定到 Context 类中的集合,只需将其属性放在为您的屏幕设计的 ViewModel 类中,例如

public class MyViewModel
{
   private MyContext _context;
   public ObservableCollection<MyObject> MyObjects { get; set; }

   public MyViewModel()
   {
      _context = new MyContext();
      MyObjects = new ObservableCollection<MyObject>(_context.MyObjects.ToList());
   }
}

然后您可以将 ListView 与该属性绑定,因为它已被引用。

希望对你有帮助,否则请提供更多详细信息。

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2011-12-11
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多