2015-10-22 4 views
-2

я делаю что-то вроде этого:Как переопределить метод Entity Framework get get?

List<Employees> employees = DB_Context.Employees.Where(p => p.id == empId).ToList(); 

С свойствами:

ID

FirstName

LastName

Адрес

Я хочу переопределить Address и добавить текст перед реальным адресом, , например текст: Client's address.

Как я могу вернуть строку Client's address + Адрес недвижимость

?

+0

Вы не можете переопределить Entity Framework –

ответ

1

Для этого вы не хотите «переопределять Entity Framework», вам нужна проекция. В LINQ вы проекта с использованием Select():

var employees = context.Employees 
         .Where(p => p.id == empId) 
         .Select(e => new Employee 
         { 
          ID = e.ID, 
          FirstName = e.FirstName, 
          LastName = e.LastName, 
          Address = "Client address: " + e.Address 
         }) 
         .ToList(); 

Вы также можете выставить не-карту имущества и поручить своим коллегам использовать, что один:

public class Employee 
{ 
    // Other properties 

    [NotMapped] 
    public string ClientAddress 
    { 
     get 
     { 
      return "Client address: " + Address; 
     } 
    } 
} 
+0

Я не хочу, чтобы , что произойдет, кто-то напишет новую функцию (какая-то другая функция)? '' Адрес клиента: 'строка не появится! – ron

+0

Да, так что вы неправильно описали свою проблему (прочитайте [ask]), и вы пытаетесь исправить эту проблему на неправильном уровне. Либо исправить это, например, в представлении базы данных, либо выставить метод, а не весь DbContext для пользователей вашего кода. – CodeCaster

+0

@ CodeCaster: Я описал это совершенным, люди просто не понимали. – ron

Смежные вопросы