没有为NVARCHAR列返回任何值

时间:2009-07-27 13:49:08

标签: sqlite subsonic

我正在尝试在ASP.NET MVC中使用带有SQLite 3的SubSonic 3.0。在设置它的最初痛苦之后,我终于能够从我的单个(到目前为止)的表数据库中检索数据,但是我从来没有获得Testimonial列的值。我尝试将其重命名为TestimonialText,我尝试将其数据类型更改为VARCHAR,NVARCHAR具有不同的大小,并且没有明确的大小甚至TEXT。什么都行不通。我可以查询数据库(使用SQLite Administrator)并查看结果 - 包括网格和手动编写的查询。对于发生的事情,我完全不知道。这是一些代码:

数据库

CREATE TABLE [Testimonials] (
[ID] INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
[Referral] NVARCHAR(30)  NOT NULL,
[Role] NVARCHAR(20)  NULL,
[Company] NVARCHAR(100)  NOT NULL,
[Url] VARCHAR(255)  NULL,
[Testimonial] NVARCHAR(500)  NOT NULL
)

控制器操作

public ActionResult Index()
{
    // Get all testimonials.
    var testimonials = Testimonial.All();

    // Pick a random one.
    var count = testimonials.Count();
    var rnd = new Random().Next(count);
    var testimonial = testimonials.Skip(rnd).Take(1).Single();
    ViewData["Testimonial"] = testimonial;

    return View();
}

视图

<%= Html.Encode(Model.TestimonialX) %><br />
<%= Html.Encode(Model.Referral + ", " + Model.Role) %><br />
<a href="<%= Model.Url %>"><%= Html.Encode(Model.Company) %></a>

所有字段都显示正确的值,但TestimonialX除外,它返回NULL。为什么?!

1 个答案:

答案 0 :(得分:2)

问题是你有一个与表名相同的列,我们的Linq翻译不喜欢它(我将在未来几周尝试修复)。如果你重命名这个专栏(这无论如何都是好的做法),它将会起作用。