C# ASP.NET MVC 4从现有数据库中搜索
我想知道是否有人可以帮助我在现有数据库上创建datacontext并从中进行搜索 到目前为止我所做的:C# ASP.NET MVC 4从现有数据库中搜索,c#,asp.net,asp.net-mvc-4,entity-framework-4,ef-code-first,C#,Asp.net,Asp.net Mvc 4,Entity Framework 4,Ef Code First,我想知道是否有人可以帮助我在现有数据库上创建datacontext并从中进行搜索 到目前为止我所做的: 为web.config上的现有数据库创建了connectionstring(与我新创建的DataContext类同名) 创建了DataContext类和它的模型类,其中是我想要获取的字段 为它创建了一个调用搜索的控制器 为控制器创建视图 这是我使用的代码 DataContext类 using System; using System.Collections.Generic; using Sys
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace KendoUIMvcCim.Models
{
public class CustDataContext : DbContext
{
public DbSet<Contacts> CLIENT { get; set; }
}
}
控制器
public ActionResult Testi(int? clientid)
{
using (var db = new CustDataContext())
{
var contact = db.CLIENT.Find(clientid);
if (contact != null)
{
return View(contact);
}
else
{
return RedirectToAction("Index", "Customer");
}
}
任何帮助都将不胜感激
致以最良好的祝愿,
Eero使用Linq如下:
public ActionResult Index(string searchTerm = null)
{
var model =
_db.Clients
.Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
.Take(10)
.Select r;
return View(model);
}
@model IEnumerable<AppName.Models.ModelName>
@{
ViewBag.Title = "Home Page";
}
<form method="GET">
<input type="search" name="searchTerm" />
<input type="submit" value="Search for a name"/>
</form>
@try
{
foreach (var item in Model)
{
<h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
<p>@Html.DisplayFor(modelItem => item.LastName)</p>
}
}
catch (NullReferenceException nullex)
{
<p>@nullex</p>
}
索引视图可以如下所示:
public ActionResult Index(string searchTerm = null)
{
var model =
_db.Clients
.Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
.Take(10)
.Select r;
return View(model);
}
@model IEnumerable<AppName.Models.ModelName>
@{
ViewBag.Title = "Home Page";
}
<form method="GET">
<input type="search" name="searchTerm" />
<input type="submit" value="Search for a name"/>
</form>
@try
{
foreach (var item in Model)
{
<h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
<p>@Html.DisplayFor(modelItem => item.LastName)</p>
}
}
catch (NullReferenceException nullex)
{
<p>@nullex</p>
}
@model IEnumerable
@{
ViewBag.Title=“主页”;
}
@试一试
{
foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.FirstName)
@DisplayFor(modelItem=>item.LastName)
}
}
捕获(NullReferenceException nullex)
{
@纳莱克斯
}
像这样使用Linq:
public ActionResult Index(string searchTerm = null)
{
var model =
_db.Clients
.Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
.Take(10)
.Select r;
return View(model);
}
@model IEnumerable<AppName.Models.ModelName>
@{
ViewBag.Title = "Home Page";
}
<form method="GET">
<input type="search" name="searchTerm" />
<input type="submit" value="Search for a name"/>
</form>
@try
{
foreach (var item in Model)
{
<h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
<p>@Html.DisplayFor(modelItem => item.LastName)</p>
}
}
catch (NullReferenceException nullex)
{
<p>@nullex</p>
}
索引视图可以如下所示:
public ActionResult Index(string searchTerm = null)
{
var model =
_db.Clients
.Where(r => searchTerm == null || r.FirstName.StartsWith(searchTerm) || r.LastName.StartsWith(searchTerm))
.Take(10)
.Select r;
return View(model);
}
@model IEnumerable<AppName.Models.ModelName>
@{
ViewBag.Title = "Home Page";
}
<form method="GET">
<input type="search" name="searchTerm" />
<input type="submit" value="Search for a name"/>
</form>
@try
{
foreach (var item in Model)
{
<h3>@Html.DisplayFor(modelItem => item.FirstName)</h3>
<p>@Html.DisplayFor(modelItem => item.LastName)</p>
}
}
catch (NullReferenceException nullex)
{
<p>@nullex</p>
}
@model IEnumerable
@{
ViewBag.Title=“主页”;
}
@试一试
{
foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.FirstName)
@DisplayFor(modelItem=>item.LastName)
}
}
捕获(NullReferenceException nullex)
{
@纳莱克斯
}
在类型列表中搜索任何属性的通用方法
public static IEnumerable<T> SearchColumns<T>(this IEnumerable<T> obj, string searchkey)
{
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
if (properties == null)
throw new ArgumentException("{typeof(T).Name}' does not implement a public get property named '{key}.");
var filteredObj = obj.Where(d => properties.Any(p => p.GetValue(d).ToString().Contains(searchkey))).ToList();
return filteredObj;
}
公共静态IEnumerable SearchColumns(此IEnumerable对象,字符串searchkey)
{
var properties=typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
如果(属性==null)
抛出新ArgumentException(“{typeof(T).Name}”未实现名为“{key}”的公共get属性);
var filteredObj=obj.Where(d=>properties.Any(p=>p.GetValue(d).ToString().Contains(searchkey)).ToList();
回流过滤器;
}
在类型列表中搜索任何属性的通用方法
public static IEnumerable<T> SearchColumns<T>(this IEnumerable<T> obj, string searchkey)
{
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
if (properties == null)
throw new ArgumentException("{typeof(T).Name}' does not implement a public get property named '{key}.");
var filteredObj = obj.Where(d => properties.Any(p => p.GetValue(d).ToString().Contains(searchkey))).ToList();
return filteredObj;
}
公共静态IEnumerable SearchColumns(此IEnumerable对象,字符串searchkey)
{
var properties=typeof(T).GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
如果(属性==null)
抛出新ArgumentException(“{typeof(T).Name}”未实现名为“{key}”的公共get属性);
var filteredObj=obj.Where(d=>properties.Any(p=>p.GetValue(d).ToString().Contains(searchkey)).ToList();
回流过滤器;
}
看一看链接的MVC3教程。它帮助我找到了正确的方法,但无法手动创建DBContext。但是在使用ADO.NET实体数据模型之后,它就可以正常工作了。我本来不想这样做,因为我只想从一个大表中得到几列,但我想现在必须这样做。谢谢看一看链接的MVC3教程。它帮助我找到了正确的方法,但无法手动创建DBContext。但是在使用ADO.NET实体数据模型之后,它就可以正常工作了。我本来不想这样做,因为我只想从一个大表中得到几列,但我想现在必须这样做。谢谢谢谢你的回复,很抱歉回复晚了!谢谢你的回复,很抱歉回复晚了!