Подтвердить что ты не робот

Создание не сопоставленного свойства в сущности (инфраструктуре сущности)

Я хочу создать настраиваемое свойство на одном из моих сущностей, сопоставленных с базой данных, однако это свойство не сопоставляется с базой данных, я создал свойство с использованием частичных классов, но при попытке скомпилировать я получаю сообщение об ошибке, сообщающее мне, что свойство не отображается. Есть ли атрибут или что-то, что я должен добавить? Спасибо заранее.

4b9b3361

Ответ 1

Используйте частичные классы для добавления добавленных свойств или методов. Например.

namespace WhateverNamespaceYourEntityModelIsIn
{
    public partial class  TheNameOfYourEntity
    {
          public string MyNewProperty { get; set; }
    }
}

и это должно сделать вас.

Ответ 2

Вы также можете пометить свое свойство атрибутом [NotMapped] или использовать метод Ignore из свободного API.

Свойство

public class EntityName
{
    [NotMapped]
    private string PropertyName { get; }
}

Свободный API

 public class Entities : DbContext
 {
    public DbSet<EntityType> Users { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
       // Some database configuration
       modelBuilder.Entity<EntityType>()
             .Ignore(i => i.PropertyName);
     }
 }

Ответ 3

Я серьезно опаздываю на разговор, но вы также хотите отметить частичное, как сериализуемое, и свойство как сериализуемое - если вы когда-либо планируете JSON или сериализуете объекты:

[Serializable()] 
public partial class MyClass {
    private System.Nullable<int> _Age;
    [global::System.Runtime.Serialization.DataMemberAttribute(Order = 4)] 
    public System.Nullable<int> Age {
            ...
    }
}

Необходимы обе директивы [Serializable()] и [global:]. Если вы исключили [global:], в любое время, когда вы его сериализовали, он будет проигнорирован и не будет включен в сериализацию.

Ответ 4

Эта страница действительно помогла мне. Я добавлю то, что я добавил в конфигурацию отображения, увидев ответ Kniganapolke.

 public TheObjectName()
   {
       this.HasKey(t => t.ID);
       this.Ignore(t => t.IsProcess); //we don't want EF to worry about this
    }

Спасибо всем, спасибо SO!