I使用して、デシベル最初を使用して、常にnullを返し、特定の関連性を持っている:Entity Frameworkの付属テーブル
var results = _ABPRepository.Query(x => x.ABPArrangementId == arrangementId)
.Include(x => x.tb_ARRArrangement)
.Include(x => x.tb_ARRArrangement.Supplier)
.Include(x => x.tb_ARRArrangement.Supplier.tb_SCNSicCodesNew)
.Include(x => x.tb_BBRBatteryBackBrands)
.Include(x => x.tb_ARRArrangement.Supplier.Country)
.Include(x => x.tb_ARRArrangement.Supplier.InvoiceCountry)
.Include(x => x.Country)
.Select().FirstOrDefault();
以下
常にnullである:私は確認しました
x.tb_ARRArrangement.Supplier.tb_SCNSicCodesNew
SQLは、(以下に簡単に)正しいこと:
SELECT
/* ... */
[Project1].[SCN_SIC_Code] AS [SCN_SIC_Code],
[Project1].[SCN_SIC_Description] AS [SCN_SIC_Description]
/* ... */
FROM (SELECT
/* ... */
[Extent4].[SCN_SIC_Code] AS [SCN_SIC_Code],
[Extent4].[SCN_SIC_Description] AS [SCN_SIC_Description],
/* ... */
CASE WHEN ([Extent8].[BBRIDNumber] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1]
FROM [dbo].[tb_ABPArrangementBatteryBackProducer] AS [Extent1]
INNER JOIN [dbo].[tb_ARRArrangement] AS [Extent2] ON [Extent1].[ABPArrangementId] = [Extent2].[ARRIDNumber]
LEFT OUTER JOIN [dbo].[tb_SUPSupplier] AS [Extent3] ON [Extent2].[ARRSupplierId] = [Extent3].[SUPKey]
LEFT OUTER JOIN (SELECT
[tb_SCNSicCodesNew].[SCN_SIC_Code] AS [SCN_SIC_Code],
[tb_SCNSicCodesNew].[SCN_SIC_Description] AS [SCN_SIC_Description]
FROM [dbo].[tb_SCNSicCodesNew] AS [tb_SCNSicCodesNew]) AS [Extent4] ON [Extent3].[SUPEaHwrSicCode2007] = [Extent4].[SCN_SIC_Code]
LEFT OUTER JOIN [dbo].[tb_COUCountry] AS [Extent5] ON [Extent3].[SUPCountry] = [Extent5].[COUIDNumber]
LEFT OUTER JOIN [dbo].[tb_COUCountry] AS [Extent6] ON [Extent3].[SUPInvoiceCountry] = [Extent6].[COUIDNumber]
INNER JOIN [dbo].[tb_COUCountry] AS [Extent7] ON [Extent1].[ABPCorrespondanceCountry] = [Extent7].[COUIDNumber]
LEFT OUTER JOIN [dbo].[tb_BBRBatteryBackBrands] AS [Extent8] ON [Extent1].[ABPArrangementId] = [Extent8].[BBRABPIDNumber]
WHERE [Extent1].[ABPArrangementId] = 123456
) AS [Project1]
返されるレコードは、私が期待するデータが含まれていますが、それはトンにマップするために失敗しました彼は results.tb_ARRArrangement.Supplier.tb_SCNSicCodesNew
プロパティです。
他のすべてのものには期待どおりの作業が含まれています。
私が試してみた:
その より、含まれるが、(などのグループ化)動作しない場合がありますが、インクルードが無視されていないが含まれて、彼らは私のシナリオには適用されていないように見えます 場所について読みますマッピングが失敗するようです。 EDMXからの連想とテーブルを削除
と再追加
の名前の変更と再作り協会とナビゲーションプロパティ
洗浄と再構築
あり
テーブル間のデータベース内の外部キーではありませんが、他のテーブルには存在しません。問題はありませんでした。
確認する事項はありますか?
がどのようにある[ABPArrangementId:これは、コンテキストと同じプロジェクトに以下に配置することによって初期化され
:上記のリンクからのコードは、文字列をトリミングするインターセプタを追加することによって、問題を修正します]あなたのスキーマintまたはvarcharで定義されていますか? – DaniDev
@DaniDevそれはintです – SWa
Gottcha!それはlinqエンジンがそれをどのように解析したかに基づいているようです。ちょうど確かめたかった。私は残念ながら答えはありません。 – DaniDev