我正在尝试在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。为什么?!
答案 0 :(得分:2)
问题是你有一个与表名相同的列,我们的Linq翻译不喜欢它(我将在未来几周尝试修复)。如果你重命名这个专栏(这无论如何都是好的做法),它将会起作用。