NHibernate 매핑을 수행하기 위해 Fluent NHibernate를 사용하고 있습니다. 그러나 이제는 어떻게 해결해야할지 모르겠다는 문제가 있습니다. 문제의 단순화 된 버전은 다음과 같습니다.전체 개체를 업데이트하지 않고 Fluent NHibernate의 특정 클래스 필드를 업데이트하는 방법은 무엇입니까?
public class User {
public virtual int Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
}
이 관련 유창함 NHibernate에 클래스지도
public class UserMap : ClassMap<User> {
public UserMap() {
Id(x => x.Id);
Map(x => x.FirstName);
Map(x => x.LastName);
}
}
나는이 웹 양식을 가지고 있습니다 :
나는 사용자 클래스가 있습니다. 하나의 양식을 사용하면 사용자 이름을 변경할 수 있고 두 번째 양식을 사용하면 사용자 성을 변경할 수 있습니다. 첫 번째 양식의 경우
: 두 번째 양식의 경우
UPDATE [users] SET firstname='new first name' WHERE id=1
: 무엇을 달성하려고하는 것은이 같은 간단한 SQL 문입니다
UPDATE [users] SET lastname='new last name' WHERE id=1
현재 NHibernate에가 다음과 같은 SQL을 수행 내 데이터베이스 :
UPDATE [users] SET firstname=null, lastname='new last name' WHERE id=1
실제 응용 프로그램의 문제는 너무 많다는 것입니다. 속성뿐만 아니라 일부 큰 개체 (뿐만 아니라 액세스 제한)을 업데이 트하고, 전체 개체를 업데이 트하는 것이 무의미한 것처럼 보이기를 원할 때 /해야 할 일은 하나의 속성을 업데이트하는 것입니다.
나는 누군가가 이것을 깨달을 수있는 방법에 대한 조언을 해 줄 수 있기를 바라고, 이것을 해결하기 위해 올바른 방향으로 나를 가리키기를 바랍니다.
더 논의 여기를 참조하십시오 : http://stackoverflow.com/questions/1243390/what-is-the-best-approach-to-update-only-changed-properties-in-nhibernate-when- se. 또한, 왜 단순성을 교환하고 즉시 많은 수작업을해야하는지 이해하지 못합니다. 솔루션을 사용해 보셨습니까? 동적 업데이트가 필요하지 않습니다 (FNH의 mapping.DynamicUpdate())? – queen3
내 코드를 두 번 확인했습니다. FNH 매핑을 내 보내면 동적 업데이트가 활성화되어 있지만 차이점이없는 것으로 보입니다. 동일한 세션을 사용할 수 있도록 저장소를 다시 작성하기 만하면 업데이트 전에 선택하면 차이가 있는지 확인할 수 있습니다. –