하지 않습니다F 번호 Linq에 매핑은 SQL Linq에 속성으로 나는, F #으로 정의 된 다음 클래스를 가지고 아무것도
member private x.expenses = (new DataContext(connString)).GetTable<Expense>()
member x.Add (expense : Expense) =
x.expenses.InsertOnSubmit(expense)
x.expenses.Context.SubmitChanges()
호출 SubmitChanges()는 아무런 예외도 발생시키지 않으며 아무 예외도 발생시키지 않습니다. 그래서 F # 객체라는 것이 있으면 확인해 보았습니다. 정확히 같은 매핑을 사용하여 C#에서 다른 클래스를 선언했습니다. 그런 다음 새 레코드를 삽입 할 수있었습니다. 이제 나는 그 차이점이 무엇인지 궁금하네요.
일부 반사경 조사는 F # 클래스의 C# 자동 가져 오기/설정 도구의 [CompilerGenerated] 및 [Serializable] 및 CompilationMapping (SourceConstructFlags.ObjectType)] 속성 중 하나 일 수 있습니까?
반사판 해체 작업 : http://pastebin.com/qTRfVcmm .NET 프레임 워크 코드에 대한 디버깅을 수행함으로써 편집
, 나는 DataContext를 인스턴스의 추적 객체의 내부 목록이 InsertOnSubmit와 SubmitChanges 사이에 일치하지 않는 것으로 나타났습니다 //
요구. SubmitChanges 호출의 시작 부분에이 목록은 비어 있습니다. 그 두 가지 참조가 동일한 DataContext 인스턴스를 대상으로하지 않으며, VS 디버거가이를 확인했다. 아직도, 그 이유는 모르겠다.
C#과 F # 프로젝트에서 연결 문자열이 동일합니까? – sinelaw
사실 F # 코드는 C# 어셈블리에서 호출됩니다. – Bartosz
.NET 프레임 워크 코드에 대해 일부 디버깅을 수행하여 DataContext 인스턴스의 추적 된 개체의 내부 목록이 InsertOnSubmit 및 SubmitChanges 호출간에 일관성이 없다는 사실을 발견했습니다. SubmitChanges 호출의 시작 부분에서이 목록은 비어 있습니다. InsertOnSubmit이 작동하는 인스턴스와 완전히 다른 인스턴스처럼 ... // 편집 : 실제로 다른 인스턴스입니다. – Bartosz