Как показать значения из столбца sql_variant с LINQ TO SQL (ASP.NET)?

Я генерирую свои классы с Linq to Sql, и у меня есть столбец "DataValue"который является sql_variant,

МОДЕЛЬ

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DataValue", DbType="Variant", UpdateCheck=UpdateCheck.Never)]
        public object DataValue
        {
            get
            {
                return this._DataValue;
            }

КОНТРОЛЛЕР:

public ActionResult getDataForAPlc()
        {
            int plc = 1; 
            var dataContext = new PLCDataContext();
            var datas = from tag in dataContext.PLC_Data_5m
                            where tag.TagID == plc && tag.TimeStampLocal >= new DateTime(2016, 7, 20) && tag.TimeStampLocal < new DateTime(2016,7,21)
                           orderby tag.TimeStampLocal descending
                           select tag;
            return View(datas);
        }

И я использовал вид GENERATOR (Бритва) Чтобы сгенерировать мой СПИСОК ЦЕННОСТЕЙ из моего QUERY.

Проблема: я вижу все значения, кроме Datavalue. Там нет ничего, и когда я генерирую представление, по умолчанию DataValue не появляется. Я добавил его в свой View.cshtml

@model IEnumerable<DataReports.Models.PLC_Data_5m>

@{
    ViewBag.Title = "getDataForAPlc";
}

<h2>getDataForAPlc</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.TimeStampLocal)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DataTimeStamp)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DataQuality)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DataValue)
        </th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.TimeStampLocal)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DataTimeStamp)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DataQuality)
        </td>
        <td>
           @Html.DisplayFor(modelItem => item.DataValue)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
        </td>
    </tr>
}

И нет никаких ценностей. Кто-нибудь может мне помочь? Я знаю, что это свойство объекта из-за sql_variantНо как получить значение из этого?

1 ответ

Решение

Вам придется реализовать обходной путь для чтения типов sql_variant, как описано в этой статье: http://www.codeproject.com/Articles/137509/Reading-sql-variant-in-Entity-Framework

Другие вопросы по тегам