저는 EntityFramework 5 EDMX 디자이너를 사용 중이며 엔티티의 첫 번째 & 성을 하나의 필드 값 (예 : 이름)에 결합하고자합니다. .엔티티 프레임 워크의 열을 edmx 디자이너와 함께 하나의 열로 결합하십시오.
이전 버전에서는이 작업을 수행 할 수있는 방법이 있다고 생각했지만 필요한 작업을 수행 할 수있는 방법이 없습니다.
그래도 가능합니까?
저는 EntityFramework 5 EDMX 디자이너를 사용 중이며 엔티티의 첫 번째 & 성을 하나의 필드 값 (예 : 이름)에 결합하고자합니다. .엔티티 프레임 워크의 열을 edmx 디자이너와 함께 하나의 열로 결합하십시오.
이전 버전에서는이 작업을 수행 할 수있는 방법이 있다고 생각했지만 필요한 작업을 수행 할 수있는 방법이 없습니다.
그래도 가능합니까?
불가능하지 않습니다. create model defined function 수 있으며 쿼리에서 사용하지만 그것은 여전히 귀하의 엔티티의 일부가되지 않습니다. 엔티티가 읽기 전용 인 경우 결합 된 열로 데이터베이스 뷰를 생성하고 테이블 대신 매핑 할 수 있습니다. 열을 단일 속성으로 결합하는 것이 쉬운 일이 아닌 주된 이유를 보여줍니다. 읽기 중 자동 연결은 쉽지만 올바른 값을 올바른 열에 저장하기위한 자동 분해는 어렵고 오류가 발생하기 쉽습니다.
쿼리하는 것 외에 다른 속성을 조합해야하는 경우 엔티티 클래스의 다른 부분 부분을 만들고 자신의 계산 된 속성을 추가하기 만하면됩니다. 쿼리에 결합 된 속성이 필요한 경우 모델 정의 함수를 사용하십시오. 여기에 설명 된대로
나는이 작업을 수행하는 방법은 Computed Column
통해 : 당신이 계산 된 열을 사용하는 경우
How to make a computed column nullable in SQL Server
당신은 당신의 LINQ 쿼리에서 이러한 열을 사용할 수 있습니다. 예를 들어이 속성이 정말 모델 객체의 일부이기 때문에
var users = Database.Users.Where(u => u.FullName.ToLower().Contains("string"));
당신은 "엔티티에 LINQ에서 지원되지 않습니다"와 같은 오류를받지 않습니다. 모든 과도한 작업은 데이터베이스 측에서 발생합니다.
물론 부분 클래스에 FullName
속성을 배치하여 사용할 수 있습니다.
public string FullName
{
get { return string.Format("{0} {1}", FirstName, LastName); }
}
, 당신은 LINQ 쿼리에서이 속성을 사용할 수 있도록 첫 .ToList()
(Database.Users.ToList();
)를 호출해야합니다. .ToList()
는 모든 Users
을 수분 공급/보관합니다. 이것은 바람직하지 않습니다! 나는 당신의 질문을 이해하지 못하는거야하지 않는 한 나는 다음과 같은 것을 유사한 부분 클래스와 있음을했던 생각 Calculated Columns in Entity Framework Code First Migrations
:
는또한 여기에 설명 년대 FullName
속성 구현을 시도 할 수 있습니다 :
public partial class person
{
public string name {
get
{
return firstname + " " + lastname;
}
set{ }
}
}