我尝试了几种方法,但无法提出任何解决方案。 我在数据库中存储过程(它被称为'mike')并且它返回单个列表(称为“代码”)。已经使用ADO.NET EntityDataModel在Visual Studio(C#)中建立了连接。代码如下:
在控制器文件夹中
// Storage
sessionStorage.setItem('key', 'value');
// Retrieval
var field = sessionStorage.getItem('key');
// Destroy
sessionStorage.removeItem('key');
在模型文件夹中
public class TestController : Controller
{
TestContext db = new TestContext();
//
// GET: /Test/
public ActionResult Index()
{
var test = (from p in db.Mike() select new TestResult { sample = p.code}).ToList<TestResult>();
return View(test);
}
我收到的错误是
错误1'字符串'不包含'code'的定义,也没有接受第一个类型为'string'的参数的扩展方法'code'(你是否缺少using指令或汇编引用?)< / p>
我该如何解决?
答案 0 :(得分:0)
示例过程(使用@Code过滤过程中的项目):
IF OBJECT_ID ('Mike', 'IF') IS NOT NULL
DROP FUNCTION dbo.Mike;
GO
CREATE FUNCTION dbo.Mike(
@Code varchar(256)
)
RETURNS TABLE
AS
RETURN(--Select Whatever Where Code = @Code);
GO
在EF6中返回单一值的相应的程序代码:
public static string GetMike(string parCode)
{
if (parCode == null)
throw new ArgumentNullException("parCode", "parCode cannot be a null reference");
string r = null;
using (var db = new YourDbContext())
{
r = db.Mike(parCode).First();
}
return r;
}
返回n行的过程代码(例如:在预定义的BindingSource中加载它):
using (var db = new YourDbContext())
{
YourBindingBindingSource.DataSource = db.Mike(parCode).ToList();
}
(对于ToList() - &gt;使用System.Data.Entity)