Могу ли я иметь свойство в моем классе, которого нет в таблице bd с использованием Entity Framework? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть таблица в моей БД, например:

Table_A
Col1 nvarchar(100)
Col2 nvarchar(100)
Col3 nvarchar(100)

Теперь в моей сущности у меня есть:

public class Table_A
{
    public string Col1 {get; set;}
    public string Col2 {get; set;}
    public string Col3 {get; set;}
    public string Col4 {get; set;}
}

Используя EF, в некоторых случаях мне нужно выполнить хранимая процедура, которая возвращает Col1, Col2, Col3 и Col4 (Col4 - это извлечение столбца в левом внешнем соединении с другой таблицей); проблема в том, что когда я не использую этот SP, я получаю сообщение об ошибке на Col4.

Я использую EF Core 2.2.3 и MS SQL Server 2017.

1 Ответ

1 голос
/ 20 февраля 2020

Могу ли я иметь свойство в моем классе, которое не существует в таблице bd с использованием Entity Framework?

Да, вы можете использовать атрибут NotMapped

Выдержка:

public class Contact
{
    public int ContactId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    [NotMapped]
    public string FullName => $"{FirstName} {LastName}";
    public string Email { get; set; } 
}

или вы можете использовать Fluent API Игнорировать метод

Выдержка:

public class SampleContext : DbContext
{
    public DbSet<Contact> Contacts { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Contact>().Ignore(c => c.FullName);
    }
}
public class Contact
{
    public int ContactId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string FullName => $"{FirstName} {LastName}";
    public string Email { get; set; } 
}

Используя EF, в некоторых случаях мне нужно выполнить хранимую процедуру, которая возвращает Col1, Col2, Col3 и Col4 (Col4 - это извлечение столбца в левом внешнем соединении с другой таблицей); проблема в том, что когда я не использую этот SP, я получаю ошибку на Col4. Я использую EF Core 2.2.3 и MS SQL Server 2017. Спасибо.

Но возникает вопрос, это ваш реальный вопрос: могу ли я иметь дополнительное свойство? ответ на который нет . Свойство либо; всегда должен отображаться или никогда не отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...