표현식에서 엔티티를 어떻게 업데이트 할 수 있습니까?표현식에서 엔티티 업데이트 (EF Core 2.0)
동적으로 어떤 속성 (열)을 업데이트해야합니까? 그 일을하는 함수는 Expression<Func<T, T>>
을 반환합니다. 여기서 T
은 entity
입니다.
Where
및 Single
을 사용하여 데이터베이스에서 엔티티를로드했습니다.
Expression<Func<T, T>> expr = this.CallVirtualMethodAndGetExpression(ModelFromRequest);
DbUser entity = this.context.Users.Where(t => t.Id == 1).Single();
some magic ??? //tried expr.Compile()(entity) but it does not work.
this.context.SaveChanges();
//use DbUser with updated properties of course.
은 내가 EF Plus (일괄 업데이트)를 사용할 수 알지만, 내가 SaveChanges
을 고수 할 (나는 SaveChanges
후 DbUser
이 필요하고 나는 다른 요청을 보내지 않도록 할).
업데이트 :
엔티티 개체 및 표현식이 있습니다. 이제 표현식에 따라 엔티티 객체를 편집해야하며 엔티티를 업데이트해야하는 SaveChanges
을 호출해야합니다.
바운티는 의문의 여지가 없습니다. 당신이 달성하고자하는 것이 무엇인지 분명하지 않습니다. 댓글에서 참조하려는 시도를 보여줌으로써 시작할 수 있습니다. –
질문에서 추가 정보를 추가합니다. 추가 설명이 포함 된 코드는 내가 성취하려고하는 것을 설명합니다. – Makla
당신이 말하고있는 표현이 [객체로부터 표현식 만들기] (https://stackoverflow.com/questions/47468652/build-expression-from-object)와 일반적으로 '표현식>에 의해이 질문에서 나온 것이라면, ', * 업데이트 *에는 절대적으로 부적합합니다. 업데이트를 위해서는'new {...}'('Expression.MemberInit')을 사용하지 않고 할당 블록을 사용하는'Expression '이 필요합니다. 현재 공식화 된 방식대로,이 질문은 의미가 없습니다. –