如何 select 巨大 table 中的某些列在某些行中包含空数据并在列中使用不同的

How to select some column in huge table which contain null data in some row and use distinict in column

我有很大的 table,其中包含一些列空数据,但我不想更改 table 中的任何内容。 在我的一个观点中,我想 select 只在页面中显示两列,第一个是 ID,第二个是区域,但在区域中,我应该使用 distinct 并防止显示空值 有我的代码,但它不起作用,请告诉我该怎么做。

public class ClsArea
{
    public int id { get; set; }
    public string AreaName { get; set; }
}

public ActionResult Index()
        {


            return View(DB.school.ToList());
        }

----------



@model IEnumerable<school.Models.ClsArea>


<div class="container">
    <div class="row" style="margin-top:30px">
        <div class="col-lg-12 col-xs-12">
            <select class="form-control">
                @foreach (var itemArea in Model.Select(c => new { c.IdSMP, c.Area }).ToList() as IEnumerable<ClsArea>)
                {

                        <option value=@itemArea.id>
                            @itemArea.areaname
                        </option>

                }
            </select>

        </div>
    </div>
</div>

错误显示

The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[<>f__AnonymousType1`2[System.Int32,System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IList`1[PMIS_V01.Models.ClsArea]'.

Distinct 不会阻止 NULL 值。它不是为了这样做而设计的。它将与其他人一起拉取一个 NULL 值。

如果您想跳过 NULL 值,那么为什么不直接忽略它们呢?类似于:

DB.school.where(s => s.Area != null).ToList()

更新:

您期望视图中包含 school.Models.ClsArea 列表,但您正在从操作中发送 DB.school 类型的列表。 DB.school实体模型类型对吗?