1

複数のエンティティで構成されるモデルがあります。これらのエンティティの一部を照会するために、コントローラーに LINQ ステートメントを記述しようとしています。提供されたヘルプに事前に感謝します。これは私を夢中にさせています。

ObjectSet ステートメント (以下を参照) ごとに、次のエラーが表示されます。

Cannot implicitly convert type 'System.Data.Entity.DbSet<MyApp.Models.MY_ENTITY_1>' to 'System.Data.Objects.ObjectSet<MyApp.Models.MY_ENTITY_1>'

これが私のコードです:

 public class MyController : ApiController
    {
    private MyEntities context = new MyEntities();

    public IQueryable <string> Get()

    {
        ObjectSet<MY_ENTITY_1> my_entity_1 = context.MY_ENTITY_1; //Error here
        ObjectSet<MY_ENTITY_2> my_entity_2 = context.MY_ENTITY_2; //Error here
        ObjectSet<MY_ENTITY_3> my_entity_3 = context.MY_ENTITY_3; //Error here

        var query =
            from MY_ENTITY_1 in my_entity_1
            from MY_ENTITY_2 in my_entity_2
            from MY_ENTITY_3 in my_entity_3

            where
                 MY_ENITITY_1.something == MY_ENTITY_2.something

            select new
                {
                    Result1 = MY_ENTITY_1.FOO1,
                    Result2 = MY_ENTITY_2.FOO2,
                    Result3 = MY_ENTITY_3.FOO3
                };

        foreach (var myResults in query)
        {
            Console.WriteLine(myResults);
        };

        return myResults;
    }
4

1 に答える 1

0

DbSet<T>から継承しないObjectSet<T>

あなたはそれを変えることができます

IQueryable<MY_ENTITY_1> my_entity_1 = context.MY_ENTITY_1;
IQueryable<MY_ENTITY_2> my_entity_2 = context.MY_ENTITY_2;
IQueryable<MY_ENTITY_3> my_entity_3 = context.MY_ENTITY_3;

または、そのクエリからその中間オブジェクトを単純に削除します

var query = from MY_ENTITY_1 in context.MY_ENTITY_1
            from MY_ENTITY_2 in context.MY_ENTITY_2
            from MY_ENTITY_3 in context.MY_ENTITY_3
            where MY_ENITITY_1.something == MY_ENTITY_2.something
            select new
            {
                Result1 = MY_ENTITY_1.FOO1,
                Result2 = MY_ENTITY_2.FOO2,
                Result3 = MY_ENTITY_3.FOO3
            };
于 2013-10-24T18:05:20.887 に答える