2012-06-01 1 views
0

선택된 모든 열을 포함하지 않습니다DynamicObject 내가 다음과 같이 삽입을 실행하기 위해 dapper.net을 사용하고

var columns = conn.Query("INSERT INTO MyTable" + 
        "(Col1, Col2, Col3)" + 
        "VALUES (@Col1, @Col2, @Col3)" + 
        "SELECT Id, ComputedColumn FROM MyTable WHERE Id = scope_identity()", 
        myObj).Single(); 

myObj.Id = columns.Id; 
myObj.ComputedValue = columns.ComputedColumn; 

쿼리는 성공하지만 예외가 myObj.ComputedValue = columns.ComputedColumn;'System.Dynamic.DynamicObject' does not contain a definition for 'ComputedColumn'

말을 던져

수집했을 수 있듯이 ComputedColumn은 테이블의 계산 열이므로이 ID와 함께 삽입 한 다음에 반환합니다. 왜 이것이 실패 할까?

+0

테이블 구조를 게시 할 수 있습니까? – Lamak

답변

1

알아 낸 것 -이 테이블에는 삽입 대신 트리거가 있습니다. 트리거는 Entity Framework에서 멋지게 플레이하기 위해 이드를 반환했습니다. SELECT Id, ComputedColumn FROM MyTable WHERE Id = scope_identity() 실제로 행을 반환조차 아니었지만, dapper가 트리거에 의해 반환 된 ID를 올바르게로드하고있었습니다. Id 및 ComputedColumn을 반환하는 트리거가 변경되었으며 모든 것이 잘 작동합니다!