엔티티 프레임 워크를 사용하고 있습니다.엔티티의 속성 목록 가져 오기
개체의 EntityState가 "Added"일 때 엔티티의 속성 목록을 얻고 싶습니다.
여기는 내가하는 일의 샘플 코드입니다.
var newEntities = ObjectStateManager.GetObjectStateEntries(EntityState.Added);
foreach (var entry in newEntities)
{
var entityName = entry.EntitySet.Name;
var newProps = ObjectStateManager.GetObjectStateEntry(entry.EntityKey).GetModifiedProperties();
var currentNewValues = ObjectStateManager.GetObjectStateEntry(entry.EntityKey).CurrentValues;
foreach (var propName in newProps)
{
var newValue = currentNewValues[propName];
}
}
당신이 볼 수 있듯이, 내가 사용하는
ObjectStateManager.GetObjectStateEntry (entry.EntityKey) .GetModifiedProperties();
속성 목록을 가져 오지 만 상태가 EntityState.Modified 인 경우에만 작동합니다.
감사합니다. 여기
그와
내 요구를 수행 할 수있는 방법이다, 나는 개체의 모든 속성을 얻고도 자신의 가치를 얻을 수 있습니다.
var newEntities = ObjectStateManager.GetObjectStateEntries(EntityState.Added);
foreach (var entry in newEntities)
{
if (entry.State == EntityState.Added)
{
var prop = entry.Entity.GetType().GetProperties();
var entityName = entry.EntitySet.Name;
var currentNewValues = ObjectStateManager.GetObjectStateEntry(entry.EntityKey).CurrentValues;
foreach (var propName in prop.Where(p => p.PropertyType.Namespace == "System"))
{
var newValue = currentNewValues[propName.Name];
}
}
}
어떤 속성을 원하십니까? 엔티티 클래스의 모든 (모든 값) 속성의 목록? –
난 속성 (예 : "EntityObject, EntityReference")과 같은 엔티티 클래스가 아닌 int32, string, bool 등의 속성 만 원할뿐입니다. 그런 다음이 속성에 대한 가치를 얻으십시오. 만약 엔티티 연락처가 있다면, ContactID, ContactName 등을 얻고 싶습니다 ... –
더 명확히하기 위해 엔티티 클래스의 속성 (즉, 테이블 열의 이름) 만 리턴하는 메소드가 필요합니다. –