3

エンティティの部分クラスの新しいプロパティに値を格納したい「Distance」というエイリアス列がある生の SQL ステートメントを使用しています。ただし、クエリを実行すると、エンティティ フレームワークはこのエイリアス列以外のすべてをマップします。エイリアス化された列 Distance をクラスのプロパティ Distance にマップするにはどうすればよいですか?

部分授業

 [MetadataType(typeof(ParishMD))]
    public partial class Parish
    {

        public List<SelectListItem> States { get; set; }
        public double Distance { get; set; }

        .........
    }

コントローラ クラス メソッド

string SQL = "select * from (select *, Distance = ((ACOS(SIN({0} * PI() / 180) * SIN(lat * PI() / 180) + COS({0} * PI() / 180) * COS(lat * PI() / 180) * COS(({1} - Long) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) from dbo.Parish) t where Distance < 10 order by Distance asc";

 SqlParameter latParam = new SqlParameter("latitude", latitude);
 SqlParameter lngParam = new SqlParameter("longitude", longitude);
 object[] parameters = new object[] { latitude, longitude };


 var parishes = db.Parish.SqlQuery(SQL, parameters);

このクラスには、データベース テーブルにマップする EDMX ファイルにマップした約 12 個のプロパティがあり、それらのプロパティは正しくマップされています。Distanceプロパティはテーブルの列ではないため、EDMX にはありません。これが私がマッピングしていない理由かどうかはわかりません。

助けてくれてありがとう!

ノミ

4

0 に答える 0