如何在可移植类库中为EF Core添加架构注释

时间:2017-06-23 13:23:29

标签: c# .net entity-framework-core data-annotations portable-class-library

对于我正在开发的项目,我们编写了一个Portable PCL来包含将在多个项目之间共享的模型和其他代码。数据访问层位于解决方案中的另一个项目中,但我想在PCL中使用EF数据注释来匹配我们当前的约定。我在System.ComponentModel.DataAnnotations命名空间中有数据注释工作正常,但找不到System.ComponentModel.DataAnnotations.Schema注释。

添加了参考,我甚至尝试将EF重新添加到PCL,但我没有运气。我读了另一篇文章,他们同时使用两个命名空间遇到了一个问题,但我甚至无法让.Schema单独工作。

以下是我的代码的示例:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; //VS shows that this is not being used

namespace Shared.Models.User
{
   public class BaseUser
   {
      [JsonProperty("id")]
      [Key]
      [Column("UserId", Order = 1)] // ***ColumnAttribute not found  
      public Guid Id { get; set; } 
      ...
      [JsonProperty("fullName")]
      [NotMapped] // ***NotMappedAttribute not found
      public string FullName => String.Format("{0} {1}", FirstName, LastName);
      ...
   }
}

PCL的目标是.Net 4.5,.Net Core 1.0,UWP和Xamarin平台。在Nuget包管理器中,它显示两个前面提到的命名空间已添加到项目中,但它们不会显示在解决方案资源管理器中。我曾尝试清理项目,构建和恢复包,但仍然没有。我没有看到任何理由不能在便携式PCL中使用,但是我错过了什么?

1 个答案:

答案 0 :(得分:0)

安装System.ComponentModel.Annotations NuGet包有帮助吗?如果没有,它们可能就不适用于那种类型的项目。