【问题标题】:Entity Framework for Portable Class Library可移植类库的实体框架
【发布时间】:2014-04-05 10:22:41
【问题描述】:

当我尝试 Nuget EntityFramework 时,我正在尝试为可移植类库创建存储库、实体框架

添加对“System.ComponentModel.DataAnnotations”的引用失败。请确保它在全局程序集缓存中。

为 EF 解决此问题的任何想法

便携式库的兼容 EF 包

【问题讨论】:

  • nuget 中存在与此nuget.codeplex.com/workitem/2978相关的问题
  • 便携库中实体框架的兼容包是什么
  • 我对 6.1.0 没有任何问题。在创建 PCL 项目时明确说明您选择的目标。
  • Windows 8、.Net 4.5、SL5、Windows Phone 8 是目标,但如上所述加载时失败
  • 我在使用普通类库时遇到了同样的错误。机器重启清除了它。

标签: c# entity-framework silverlight windows-phone-8 windows-8


【解决方案1】:

可以使用fluent Api,不要在模型类中使用数据注解和属性。

示例:用于定义主键;而不是使用[Key] 标签,使用:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<Record>().HasKey<int>(s => s.ID);
}

【讨论】:

    【解决方案2】:

    在 Visual Studio Update 2 之前,您可以创建一个面向 .Net 4 或 .Net 4.5 和 Windows 8 的 PCL 项目,这将允许您安装 EntityFramework nuget 包。在此更新之后,如果没有自动定位 Windows Phone 8.1,您将无法定位 Windows 8。

    Windows Phone 的这种自动定位似乎阻止了将 EF 包添加到以 Windows 8 为目标的 PCL。

    【讨论】:

      【解决方案3】:

      EF7有PCL,如果有打算使​​用PCL的可以使用EF7的早期版本或者VS2014

      【讨论】:

      • 您能否编辑您的答案以引用“EF7 具有 PCL”的来源?
      • 但是需要安装哪个 NuGet 包?我正在尝试使用 EntityFramework.SQLite (Beta6),但它不会安装在面向 Windows8/.Net4.5 的 PCL 库中
      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多