SQLクエリをLINQに変換する際に問題があります。私はそれの95%が、私はクエリを実行すると、これまでSQLクエリをLINQに変換する - 演算子 '&&'を 'int'型と 'bool'型のオペランドに適用できません
var query = from table1 in table 1
join table2 in table 2 on table1.Column1 equals table2.Column1 && table2.Column2 == 1838 into result
from table2 in result.DefaultIfEmpty()
where table1.Column2 == 1 && table1.Column3 == 24029 && (table2.Column3 == null || table2.Column3 == 1)
select table1.Column1;
私はこの時にエラーが発生します
SQL
SELECT
table1.Column1
FROM
table 1 table1
LEFT OUTER JOIN
table 2 table2 ON table2.Column1 = table1.Column1
AND table2.Column2 = 1838
WHERE
table1.Column2 = 1
AND table1.Column3 = 24029
AND (table2.[Column3] IS NULL OR table2.[Column3] = 1)
LINQに参加するにLINQが持つ問題に複製があると思いますライン
join table2 in table 2 on table1.Column1 equals table2.Column1 && tabl2.Column2 == 1838 into result
エラー:
CS0019 Operator '&&' cannot be applied to operands of type 'int' and 'bool'
お願いします。
のようなものを使用することができます - しないでください。 LINQは単なるクエリ言語です。一方、* Entity Framework *は* ORM *です。 *オブジェクト*をテーブルにマップします。リレーションとナビゲーションのプロパティを持つ*適切なエンティティを作成すると、EFはJOIN文を生成します。 –
あなたのエンティティがOrderとLineItemであると仮定すると、各LineItemにOrderプロパティを持たせることができます。 Orderには 'LineItems'コレクションがあります。オーダーとすべての広告申込情報を読み込む場合は、単にオーダーを読み込むことができます。そのLineItemsには –
がロードされます。この 'From table 1 table1'は有効ではありません。また、表1の表1からもそうではない。そのような名前にはスペースがあってはいけません。また、 'table2.Column2 = 1838'はSQLのjoinのon節でなく、Linq joinで絶対にそこに存在することはできません。 – juharr