代码之家  ›  专栏  ›  技术社区  ›  Pawel Krakowiak

没有为NVARCHAR列返回值

  •  0
  • Pawel Krakowiak  · 技术社区  · 15 年前

    我正在尝试在ASP.NETMVC中使用亚音速3.0和SQLite3。经过最初的设置,我终于能够从我的单个(到目前为止)表数据库中检索数据,但是我从来没有得到过鉴定列的值。我尝试将其重命名为类似于鉴定文本的内容,尝试将其数据类型更改为VARCHAR、具有不同大小的NVARCHAR和w/o显式大小甚至文本。什么都不管用。我可以查询数据库(使用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>
    

    1 回复  |  直到 15 年前
        1
  •  2
  •   user1151 user1151    15 年前

    问题是,您有一个与表同名的列,而我们的Linq转换器不喜欢它(我将在未来几周内尝试解决这一问题)。如果重命名此列(无论如何这是一个很好的做法),它将起作用。