我正在尝试保存对现有数据库条目的更新,但是当我这样做时,我收到错误:
附加类型为"FFInfo.DAL.Location"的实体失败,因为同一类型的另一个实体已具有相同的主键值.如果图中的任何实体具有冲突的键值,则在使用"附加"方法或将实体的状态设置为"未更改"或"已修改"时,可能会发生这种情况.这可能是因为某些实体是新的并且尚未收到数据库生成的键值.在这种情况下,使用"添加"方法或"已添加"实体状态来跟踪图形,然后根据需要将非新实体的状态设置为"未更改"或"已修改".
这是我的控制器代码.我正在使用的保存方法与我在其他几个方面使用的保存方法相同,可以毫无问题地更新数据.
[HttpPost, ValidateAntiForgeryToken]
public ActionResult EditLocation(AddEditLocationVM model, HttpPostedFileBase MapFile)
{
try
{
using (var db = new GeographyContext())
{
model.Sections = new SelectList(db.Sections.Where(s => s.ID > 1).OrderBy(s => s.Title), "ID", "Title").ToList();
model.GeographyTypes = new SelectList(db.GeographyTypes.Where(gt => gt.SectionID == model.Section).OrderBy(gt => gt.Name), "ID", "Name").ToList();
model.ParentLocations = new SelectList(db.Locations.Where(l => l.SectionID == model.Section).OrderBy(l => l.Name), "ID", "Name").ToList();
if (MapFile != null)
{
if (FileHelper.IsNotValidImage(MapFile))
{
ModelState.AddModelError("Invaalid File Type", "Images must be JPG, GIF, or PNG files.");
}
}
if (ModelState.IsValid) …Run Code Online (Sandbox Code Playgroud) 我正在使用Entity Framework 7处理我的第一个项目,并且正在连接到已经创建了数据库的SQL Server,但它还没有表.我创建了我的DbContext并创建了一个类,然后DbSet<>在我的上下文中设置了一个.我运行命令以启用迁移并创建第一次迁移,然后使用rand命令更新数据库.一切看起来都很好,没有出现任何错误,但是当我查看数据库时,只EFMigraitonsHistory创建了表.当我查看为初始迁移创建的类时,它基本上是空白的.我究竟做错了什么?
我正在运行的命令:
dnvm install latest -r coreclr
dnx ef migrations add MyFirstMigration
dnx ef database update
Run Code Online (Sandbox Code Playgroud)
语境:
namespace JobSight.DAL
{
public class JobSightDBContext : DbContext
{
public DbSet<NavigationMenu> NavigationMenu { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
表类:
namespace JobSight.DAL
{
public class NavigationMenu
{
[Required, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int16 ID { get; set; }
public string ControllerName { get; set; }
public string ActionName { get; set; }
public string ExternalURL { get; …Run Code Online (Sandbox Code Playgroud) 使用新的MVC属性路由,我知道您可以Route为单个分配多个属性ActionResult,但我正在寻找在该RoutePrefix级别执行相同操作的方法.我有一个控制器,在每个动作中都应该可以通过三种途径访问:
/Games/{Title}/Characters/{Route}
/Books/{Title}/Characters/{Route}
/Cinema/{Title}/Characters/{Route}
我尝试了三个单独的RoutePrefix属性,但是我得到了错误Deuplace RoutePrefix attribute.如果我尝试使用以逗号分隔的列表,我会得到Best override method for does not contain a constructor that takes 3 arguments.
是否可以设置一个RoutePrefix所需的三个路径我的控制器?
两天前,没有代码更改或更改数据库,我没有得到很多(每5分钟左右)错误,The wait operation timed out错误有两个不同的下划线完全错误关于预登录和另一个关于帖子:
System.Data.Entity.Core.EntityException:基础提供程序在Open上失败.---> System.Data.SqlClient.SqlException:连接超时已过期.尝试使用登录前握手确认时超时时间已过.这可能是因为登录前握手失败或服务器无法及时响应.尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 21; 握手= 14988; ---> System.ComponentModel.Win32Exception:等待操作超时
System.Data.Entity.Core.EntityException:基础提供程序在Open上失败.---> System.Data.SqlClient.SqlException:连接超时已过期.在登录后阶段过去了超时时间.在等待服务器完成登录过程并响应时,连接可能已超时; 或者在尝试创建多个活动连接时可能会超时.尝试连接到路由目标时发生此故障.尝试连接到原始服务器时花费的持续时间是 - [Pre-Login] initialization = 5; 握手= 3098; [登录]初始化= 0; 认证= 0; [登录后]完成= 7; 尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 20; 握手= 5; [登录]初始化= 0; 认证= 0; [登录后]完成= 11003;
我正在使用Entity Framework,我的网站托管在Azure Web App上.我已经做了一些挖掘,我发现的大多数SO问题都与实体框架无关,但ADO.Net我找到的几篇帖子让我更新了从DB的基本到标准(S0)服务并创建了一个GlobalDBConfig
public class GlobalDBConfig : DbConfiguration
{
public GlobalDBConfig()
{
SetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy(2, TimeSpan.FromSeconds(30)));
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能弄清楚还有什么问题并修复它?这是一个非常简单的数据库,具有简单的查询和很少的网站流量(每天少于1000次访问)
我的理解是,如果你添加app.UseExceptionHandler();并给它一个ASP.Net应该加载该页面的路径,当有一个错误没有被代码捕获但在我的情况下我仍然得到正常的"Http 500内部服务器错误"页面.我可以采取我给出的路径UseExceptionHandler(),并将其放在我的浏览器中,它加载页面很好,所以我知道路径和页面工作.我想念这是如何工作,它是坏了,还是我做错了什么?
Startup.cs:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}
app.UseExceptionHandler("/Error/ServerError");
app.UseIISPlatformHandler();
app.UseSession();
app.UseStaticFiles();
app.UseStatusCodePagesWithReExecute("/Error/PageNotFound");
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
错误页码:
//Get: "/Error/ServerError"
[Route("Error/ServerError")]
public IActionResult ServerError()
{
return View(); //View is inside the Shared folder.
}
Run Code Online (Sandbox Code Playgroud)
错误页面视图:
<p>
@ViewData["ErrorMessage"]
</p>
Run Code Online (Sandbox Code Playgroud)
请注意,"找不到页面"错误被路由到/Error/PageNotFound没有问题,只是其他错误没有.
编辑:作为测试,我将字符串从中复制UseStatusCodePagesWithReExecute到UseExceptionHandler但仍然得到通用的500错误页面.
编辑2:我应该注意到我正在以两种方式测试此错误.第一种是通过简单地执行操作throw new DivideByZeroException();,另一种是将LINQ to Entities调用到已脱机的数据库(并因此抛出a SqlException).两种方式都只返回默认值HTTP 500 Internal Server Error而不是我的自定义错误.
我正在关注https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db以了解如何使用新的 .Net Core 和 Entity Framework Core,我正在尝试创建到远程 SQL Server 的连接字符串。我更新了服务器和数据库字符串,但它没有显示如何指定用户名和密码。我已经做了一些挖掘,但我发现的每个实体框架核心示例都仅适用于 localDB。我如何正确指定登录凭据以及应该Trusted_Connection为远程 SQL Server 2016 服务器设置什么?
我收到了一个使用 tailwindcss 编写的 html 文件,我正在尝试找出如何将所有内容转换为普通 CSS。我找到了一个只执行该类的转换,但这需要我手动从代码中提取数千个类,然后重新粘贴它。是否有一些工具可以让我上传整个 html 文件,然后它会为我生成 CSS 版本,还是我必须手动进行整个转换?我更喜欢在线的东西,因为我不想安装一堆第三方工具,学习那里的系统,进行转换,然后卸载所有东西。
今天我注意到两个命名空间System.Web.Mvc,并System.Web.WebPages.Html有SelectListItem.它之间有什么区别,有时候你应该使用一个而不是另一个吗?
我正在使用MVC属性路由(MVC 5.1.2)并遇到错误:
找到了与URL匹配的多种控制器类型.如果多个控制器上的属性路由与请求的URL匹配,则会发生这种情
请求已找到以下匹配的控制器类型:FFInfo.WebUI.Areas.Admin.Controllers.HomeController FFInfo.WebUI.Areas.Admin.Controllers.SectionController
这种情况只发生在我去的时候/Admin/Sections/,我不确定为什么因为只有一条路线可以匹配该URL,任何人都可以帮我弄清楚出了什么问题?请注意这个问题是5.1.2独有的,MVC 5.0工作正常.
基础控制器:
[RouteArea("Admin")]
public class BaseController : Controller
{
}
Run Code Online (Sandbox Code Playgroud)
家庭控制器:
[RoutePrefix("")]
[Route("{action}")]
public class HomeController : BaseController
{
public ActionResult Index()
{
}
public ActionResult Updates()
{
}
[ChildActionOnly]
public PartialViewResult GetUpdatesGrid()
{
}
public ActionResult GetUpdates(JqGridRequest Request)
{
}
}
Run Code Online (Sandbox Code Playgroud)
部门控制器:
[RoutePrefix("Sections")]
[Route("{action}")]
public class SectionController : BaseController
{
[Route]
public ActionResult Sections()
{
}
[ChildActionOnly]
public PartialViewResult GetSectionsGrid()
{
}
public ActionResult GetSections(JqGridRequest Request)
{
}
public ActionResult AddSection() …Run Code Online (Sandbox Code Playgroud) 编辑,这不是重复.建议的SO链接要我打电话,ToString()但我正在运行.COUNT()并试图做一个大于比较,所以呼叫ToString()不是一个正确的答案.
我试图使用IF快捷方式填充变量,但是当我运行它时,我得到了错误
LINQ to Entities无法识别方法'System.Guid Parse(System.String)'方法,并且此方法无法转换为存储表达式.
我正在运行的代码是
IsAdmin = (db.yaf_prov_RoleMembership
.Where(rm => rm.UserID == UserKey
&& rm.RoleID == Guid.Parse("adsfasd654asdf816asdf"))
.Count() > 0) ? true : false;
Run Code Online (Sandbox Code Playgroud)
如果我带走Guid.Parse并进行直接比较,那么我得到了错误
Operator ==不能应用于System.Guid和String类型的操作数
为了将GUID与LINQ查询中的字符串进行比较,需要做些什么?
c# ×5
asp.net-core ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
azure ×1
css ×1
linq ×1
sql-server ×1
tailwind-css ×1