Baza danych została stworzona przez kogoś innego i muszę jej używać. Atrybuty tabeli gdzie jest FK są typu int, ale Entity faktycznie udostępnia jakieś properties dodatkowe (Navigation Properties), które można używać jak podałeś. Dzięki za to.
Mam jeszcze jeden problem.
Kiedy dodam jak wyżej obiekty do bazy ale jeszcze nie zrobię save to nie mogę uzyskać wszystkich obiektów taką metodą, bo uzyskuję wszystkie oprócz tych, które przed chwilą dodałem.
List<PANSTWO> panstwa = db.PANSTWO.Where<CMN_Place>(p => p.ID_PARENT == this.ID).ToList();
foreach (CMN_Place i in places)
{
...
}
Kiedy próbuję jednak zrobić:
List<PANSTWO> panstwa = db.PANSTWO.Where<CMN_Place>(p => p.PANSTWO2 == this).ToList();
wywala mi błąd, System.NotSupportedException: Nie można utworzyć wartości stałej typu „BsnCmn.CMN_Place”. W tym kontekście są obsługiwane tylko typy pierwotne i typy wyliczeń.
w System.Data.Objects.ELinq.ExpressionConverter.ConstantTranslator.TypedTranslate(ExpressionConverter parent, ConstantExpression linq)
w System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
w System.Data.Objects.ELinq.ExpressionConverter.EqualsTranslator.TypedTranslate(ExpressionConverter parent, BinaryExpression linq)
w System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
w System.Data.Objects.ELinq.ExpressionConverter.TranslateLambda(LambdaExpression lambda, DbExpression input)
w System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.OneLambdaTranslator.Translate(ExpressionConverter parent, MethodCallExpression call, DbExpression& source, DbExpressionBinding& sourceBinding, DbExpression& lambda)
w System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.OneLambdaTranslator.Translate(ExpressionConverter parent, MethodCallExpression call)
w System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.TypedTranslate(ExpressionConverter parent, MethodCallExpression linq)
w System.Data.Objects.ELinq.ExpressionConverter.Convert()
w System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable1 forMergeOption) w System.Data.Objects.ObjectQuery
1.GetResults(Nullable1 forMergeOption) w System.Data.Objects.ObjectQuery
1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
w System.Collections.Generic.List1..ctor(IEnumerable
1 collection)
w System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)