我目前正在使用实体框架在ASP.NET MVC 4中编写搜索功能.但是,我遇到了障碍,我只能找到"坏"的解决方案.
我的搜索功能返回一个由4个参数组成的模型:
String Name
String Street
String Code
String Province
List<Query> query = (from t in Model select t).ToList();
Run Code Online (Sandbox Code Playgroud)
现在我想过滤我的搜索输入.但是,用户可以决定填写尽可能多的搜索字段.他可以决定使用姓名和街道,或姓名,街道和省份,或......
我能找到的唯一真正的解决方案包括进行查询并IQueryable检查字段是否已填充if,然后使用a .Where来更新查询.由于目前这将提供m 5个查询,我想知道是否有更好的解决方案,我在这里缺少.
谢谢你的帮助.
我目前正在使用asp.net mvc 4.5和EF5 Beta 2进行编码,我有一个存储过程,它返回多个结果集.我找到了这个网站,它说新版本(我正在使用)已经支持多个结果集.
现在我似乎无法找到那种支持.由于我完全不熟悉EF,我希望我没有做错事.
我的数据库中没有相应的实体来创建结果集.
目前,用户添加了"新的互联网日历",但它是ICS文件的一次性下载.我希望用户单击按钮以将其个人日历添加为Outlook的订阅.我想要自动更新"互联网日历订阅".
与SharePoint一样,名为"连接到Outlook"的按钮将您正在查看的日历添加为自动同步日历.
我目前正在使用 EF 4.0 处理 ASP.NET MVC 4。我有一个包含列表项的无序列表。每个列表项都包含名称和地址,并且可以单击。现在我想要做到这一点,以便当我单击列表项时,我会转到一个新视图。该视图称为 UitgebreidPersoonScherm,位于同一控制器 RelatieZoekenController 中。
这是我目前拥有的代码:
控制器:
[HttpPost]
public ActionResult UitgebreidPersoonScherm(int psnID)
{
ViewBag.Message = "UitgebreidPersoonScherm";
return View("UitgebreidPersoonScherm");
}
Run Code Online (Sandbox Code Playgroud)
看法:
@model MobileApp.Models.ZoekModel
@{
ViewBag.Title = " Resultaten";
}
@using (Html.BeginForm("UitgebreidPersoonScherm", "RelatieZoeken", FormMethod.Post, new { id = "resultForm" }))
{ <ul data-role="listview" data-filter="true" data-inset="true" data-theme="g">
@foreach (var adres in Model.AdresList)
{
<li>
<a href='@Html.Action("UitgebreidPersoonScherm", "RelatieZoeken")'><b>@adres.Naam </b>
<br />@adres.Adres
</a></li>
}
</ul>
}
Run Code Online (Sandbox Code Playgroud)
现在我不知道这是怎么可能的。我尝试使用操作链接来制作它,但它不会显示我的数据。如果我删除 httppost 我可以让它工作,但没有参数。目前它也没有给出任何参数。
如果您需要任何额外信息,请询问。
谢谢。
c# asp.net-mvc asp.net-mvc-controller asp.net-mvc-views c#-4.0
我正在使用实体框架 5,并且尝试删除没有主键的实体。我的意思是我的表甚至没有主键。
场景如下:
我有 3 个表,其流程如下:
MainTeam -> UserPerTeam <- 用户
我的 Mainteam 表的主键 ID 与表 UserPerTeam 中的 MainTeamID 相关。
我的用户表的主键 ID 与表 UserPerTeam 中的 UserID 相关。
UserPerTeam 有这 2 个关系以及该表中需要的一些其他字段。
因此,现在当我使用以下代码时,我的实体框架会打破它没有主键的事实:
var upt = new FighterPerTeam { UserID = userId, TeamID = teamId };
Entities.UserPerTeam.Attach(upt);
Entities.UserPerTeam.Remove(upt);
Entities.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
所以现在我得到了一个巨大的错误:
无法更新 EntitySet“UserPerTeam”,因为它具有 DefiningQuery,并且元素中不存在支持当前操作的元素。
我只是想知道如何以安全的方式解决这个问题。我知道我可以使用以下代码,但我不太喜欢使用它,因为它看起来不是实体框架。
var cmd = ("Delete from UserPerTeam where userID = " + userId + " and teamId = " + teamId);
Entities.Database.ExecuteSqlCommand(cmd);
Run Code Online (Sandbox Code Playgroud)
差点忘了提及我正在使用延迟加载,并且我只想删除 UserPerTeam 表中的实体。如果您的解决方案还删除了 MainTeam 或 User …
我在ASP.NET MVC 4中工作,我遇到的问题是我的模型验证工作不正常.由于某些原因,我的所有必填字段都不得填写.
这是我的模特:
public class MovieModel
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public DateTime ReleaseDate { get; set; }
[Required]
public string Genre { get; set; }
[Required]
public decimal Price { get; set; }
public virtual ICollection<RoleInMovie> RoleInMovie { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是视图:
@using (Html.BeginForm())
{
<table>
<tr>
<td>
<label>Name:</label></td>
<td>@Html.EditorFor(m => m.Name)</td>
<td>@Html.ValidationMessageFor(m => m.Name)</td>
</tr>
<tr>
<td>
<label>Genre:</label></td>
<td>@Html.EditorFor(m => m.Genre)</td>
<td>@Html.ValidationMessageFor(m => m.Genre)</td>
</tr> …Run Code Online (Sandbox Code Playgroud) 我使用的是带有 DSM 6.2.2-24922 的 Synology DS213。甚至在我在其上安装任何 php 软件包之前,它似乎就有一个 php 引擎。不幸的是,它不允许我连接到任何数据库,因为似乎没有允许这些扩展。
看来我当前的 php.ini 文件位于 /etc/php/php.ini,我可以找到以下扩展名:
extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = iconv.so
extension = ldap.so
extension = mcrypt.so
extension = openssl.so
extension = pdo_sqlite.so
extension = posix.so
extension = phar.so
extension = shmop.so
extension = sockets.so
extension = sqlite3.so
extension = zip.so
extension = syno_compiler.so
Run Code Online (Sandbox Code Playgroud)
如您所见,不支持 pdo_mysql 和 mysqli。我尝试添加它们,但这会给我带来文件丢失的错误。
然后我尝试使用包管理器并使用 PHP 5.6 和 7.2 安装 Web Station。这似乎没有任何效果,因为我的默认 php 没有任何改变。
我通过以下方式验证了这一点:
root@DiskStation:/etc/php# php --ini
Configuration File (php.ini) …Run Code Online (Sandbox Code Playgroud)