Entity Framework 4 및 Code-First를 사용하여 데이터베이스에서 필드/속성 제외
-
19-09-2019 - |
문제
데이터베이스에서 일부 필드를 제외할 수 있는 방법이 있는지 알고 싶습니다.예를 들어:
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string FatherName { get; set; }
public bool IsMale { get; set; }
public bool IsMarried { get; set; }
public string AddressAs { get; set; }
}
데이터베이스에서 AddressAs 필드를 제외하려면 어떻게 해야 합니까?
해결책
현재 버전에서 속성을 제외하는 유일한 방법은 다른 모든 열을 명시 적으로 매핑하는 것입니다.
builder.Entity<Employee>().MapSingleType(e => new {
e.Id,
e.Name,
e.FatherName,
e.IsMale,
e.IsMarried
});
주소가 참조되지 않기 때문에 엔티티 / 데이터베이스의 일부가 아닙니다.
EF 팀은입니다 고려하면 다음과 같은 추가 :
builder.Entity<Employee>().Exclude(e => e.AddressAs);
efdesign 블로그에 댓글을 남기고이 기능을 요청하는 것이 좋습니다. :)
도움이 되었기를 바랍니다
알렉스
다른 팁
향후 참조 : 데이터 주석을 사용할 수 있습니다MSDN EF- 코드 첫 번째 데이터 주석
[NotMapped]
public string AddressAs { get; set; }
나는 이것이 오래된 질문이라는 것을 알고 있지만 누군가 (나 같은) 사람이 검색에서 나오는 경우 ...
이제 엔티티 프레임 워크 4.3에서이를 수행 할 수 있습니다. 당신은 그렇게 할 것입니다 :
builder.Entity<Employee>().Ignore(e => e.AddressAs);
무시하려는 열을 추가하는 것도 가능합니다. 그림자 속성 DbContext에서:
builder.Entity<Employee>().Property<string>("AddressAs");
그런 다음 해당 열에 대해 다음과 같이 쿼리할 수 있습니다.
context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
제휴하지 않습니다 StackOverflow