1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VideoWebsite.DataAccess;

namespace VideoWebsite.Models
{
    public class DatabaseModel
    {
        public int DatabaseID { get; set; }
        public string DatabaseName { get; set; }
   }

    public class DatabaseModelAccess
    {
        public static IEnumerable<DatabaseModel> All()
        {
            string queryString = @"SELECT 1 as DatabaseID, 'test' as DatabaseName";
            using (EntitiesModelA2 dbContext2 = new EntitiesModelA2())
            {
                IEnumerable<DatabaseModel> result = dbContext2.ExecuteQuery<DatabaseModel>(queryString); //Exception occurs here
                return result;
            }
        }
    }
}

我正在尝试实现非持久类型。我正在使用 postgres 数据库来生成 EntitiesModelA2。

展开此图像将显示参数名是 **convertername**

在此处输入图像描述

4

1 回答 1

1

从 Telerik 数据访问的角度来看,出现错误是因为查询没有 FROM 子句(它不符合SELECT 语句的基本语法)。

你可以像这样执行它:

选项1

using (EntitiesModelA2 dbContext = new EntitiesModelA2())
{
    using (IDbConnection connect = dbContext.Connection)
    {
        using (IDbCommand command = connect.CreateCommand())
        {
            command.CommandText = "SELECT 1 as DatabaseID, 'test' as DatabaseName FROM ExistingTableName";
            using (IDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var result = new DatabaseModel();
                            result.DatabaseID = reader.GetInt32(0);
                            result.DatabaseName = reader.GetString(1);
                            //do something with the result
                        }
                    }
        }
    }
}

选项 2

using (EntitiesModelA2 dbContext = new EntitiesModelA2())
{
    var result = dbContext.ExecuteQuery<DatabaseModel>("SELECT 1 as DatabaseID, 'test' as DatabaseName FROM ExistingTableName");
}
于 2015-04-13T09:59:06.850 回答