1

SubSonic 3の外部結合ステートメントにバグがあるようです。あるいは、それは私の無知なのかもしれませんが、次のようになります。

var Objeto = from t in Table1.All()
             join su in table2.All() on t.Id equals su.Id
             join tab2 in Table1.All() on t.PId equals tab2.Id into gj
             from j in gj.DefaultIfEmpty()
             select new
             {
                 t.Field1,
                 SN = su.Field123,
                 PTN = (j == null ? null : j.FieldABC)
              };

と:

The expression of type 'System.Linq.IQueryable` xxxx is not a sequence
4

2 に答える 2

1

ここで古いトピックを復活させますが、後で検索する場合は、SubSonic3で左外部結合に対して正しく機能するように見える別の構文があります。

元の投稿のLinq式の代わりに、次のjoin ... into ... ように書き換えます。

var Objeto = from t in Table1.All()
         join su in table2.All() on t.Id equals su.Id
         from j in Table1.All().Where(x => x.Id == t.PId).DefaultIfEmpty()
         select new
         {
             t.Field1,
             SN = su.Field123,
             PTN = (j == null ? null : j.FieldABC)
          };

重要な部分は次のとおりfrom j in Table1.All().Where(x => x.Id == t.PId).DefaultIfEmpty()です。従来の結合ではなく、外部結合を実行しますjoin ... into

うまくいけば、これが役立ちます!

于 2011-05-05T17:52:40.690 に答える
0

彼らはすでに IQueryable に問題を抱えていました:

ブログエントリー

ご参考まで...

于 2009-10-14T14:33:56.057 に答える