如何使用 LINQ TO SQL (ASP.NET) 显示 sql_variant 列中的值?
How to show values from a sql_variant column with 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
(Razor) 从我的查询中生成我的价值列表。
问题: 我看到了所有值,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
,我知道这是一个对象 属性,但是,如何从中获取值?
您必须实施解决方法才能读取 sql_variant 类型,如本文所述:http://www.codeproject.com/Articles/137509/Reading-sql-variant-in-Entity-Framework
我使用 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
(Razor) 从我的查询中生成我的价值列表。
问题: 我看到了所有值,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
,我知道这是一个对象 属性,但是,如何从中获取值?
您必须实施解决方法才能读取 sql_variant 类型,如本文所述:http://www.codeproject.com/Articles/137509/Reading-sql-variant-in-Entity-Framework