3

我正在使用一个原始 SQL 语句,我有一个名为“距离”的别名列,我想将值存储到实体部分类的新属性中。但是,当我执行查询时,实体框架会映射除此别名列之外的所有内容。我应该怎么做才能将别名列距离映射到我班级的属性距离?

部分类

 [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