我注意到在ASP.Net 5(核心)的所有示例和教程中我都看到了Microsoft和VS 2015中的默认Web应用程序模板@ViewData["XXX"]而不是使用@ViewBag.XXX.这是现在推荐的从控制器传递数据而不是ViewBag?我知道这ViewBag是一个包装,ViewData但在他们使用的旧教程(ASP.NET 4.5)中ViewBag.如果他们现在鼓励开发人员使用ViewData为什么要改变?
在Entity Framework 7中,当我尝试应用迁移时,我收到错误
在表'ChangeOrder'上引入FOREIGN KEY约束'FK_ChangeOrder_User_CreatedByID'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
无法创建约束.查看以前的错误.
我知道在旧版本的Entity Framework中你可以通过添加来解决这个问题
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
Run Code Online (Sandbox Code Playgroud)
到DbContext,但在EF7 modelBuilder似乎没有.Conventions它和谷歌只返回旧的EF 4虽然EF 6结果.
如何ON DELETE NO ACTION在Entity Framework 7中具体约束?
编辑:奥列格提供的答案显然是按照外键进行的,但是我想在全局范围内进行,因为使用一行代码来全局声明这一点会更容易,然后必须为每一个代码指定代码.我将最终拥有数百种关系.
编辑2:奥列格的代码
public class ChangeOrder
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public Int16? ApprovedByID { get; set; }
public Byte ApprovalStatusID { get; set; }
public Int16 AssignedToID { get; set; }
public Int16 CreatedByID { get; set; }
public Byte CurrentStatusID { get; set; } …Run Code Online (Sandbox Code Playgroud) 我有一个我在Visual Studio 2013中构建的多项目解决方案,它工作正常,但现在我已升级到Visual Studio 2015,我无法再在调试模式下达到断点,因为任何项目都会选择作为选定的主项目"项目属性"页面中的启动项目.我曾经能够点击其他项目,只需选择Debug - > Start New Instance.我收到了The breakpoint will not currently be hit. No symbols have been loaded for this document.我在Google上发现的很多错误,包括:
那我在这里错过了什么?为什么我不能再调试其他项目?
我知道我可以为每个属性添加一个数据注释来设置它的列类型VARCHAR但是我有数百个列我想要VARCHAR而不是NVARCHAR有一些方法来设置EF6使其成为默认值吗?
我正在编写我的第一个ASP.Net代码Web应用程序,在我的控制器中,我希望有一个if声明,检查我是否处于调试模式.我知道在Startup.cs文件中我可以检查,env.IsDevelopment()但那是因为IHostingEnvironment传入它.我无法在普通控制器中找到检查此状态的方法.ASP.Net Core中是否有一种方法可以检测我在控制器内部处于调试模式时是否缺少?
如何从Visual Studio中删除项目类型?我创建了一个并用VSIX文件安装它,但我想改变它,新的VSIX文件说我无法安装新的,因为旧的存在.
TIA.
我正在尝试开发我的第一个ASP.Net Web应用程序,在我的解决方案中,我有两个项目.A Web Application和Class Library (Package).当我构建这个应用程序的ASP.Net 4.5版本时,我将我的Entity Framework 6实体放入一个类库中,所以我在ASP.Net 5版本中这样做.问题是,当我安装EntityFramework.Commands到类库时,我收到错误:
Project DBEntities中的依赖项EntityFramework.Command 7.0.0-rc1-final不支持框架.NetPlatform,Version = 5.4
我从认识这太问题是,dotnet5.4是新的.NET 5这是应该由EF7支持.
这是我的project.json档案:
{
"version": "1.0.0-*",
"description": "FFInfo.DAL Class Library",
"authors": [ "Mathew" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
},
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
}
}
Run Code Online (Sandbox Code Playgroud)
我是否安装了错误的软件包,EF7改变了很多,以至于我错误地构建了类,或者我在json文件中遗漏了什么? …
我正在尝试使用Entity Framework Core. 我试图按照Microsoft的指示进行操作,但出现错误:
无法找到名称为 EntityFramework 的提供程序程序集。确保指定的名称正确并被项目引用。
我正在从项目目录运行以下命令:
dnx ef dbcontext scaffold "Server=REMOVED;Database=REMOVED;User ID=REMOVED;Password=REMOVED" EntityFramework
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在从一个空的ASP.NET Core 2模板创建一个新的网站,并按照Microsoft Entity Framework Tutorial帮助我进行设置.有一点,你有添加代码:
services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)
对ConfigureServices()方法Startup.cs.我这样做,但在我的项目的Visual Studio给我那个小红线下Configuration的Configuraiton.GetConnectionString
我以为我错过了一个声using明甚至是一个包,但是Visual Studio 2017快速操作并没有识别出using要使用的语句,而且我确实安装了Microsoft.AspNetCore.All包,所以我应该拥有所有包.
我错过了什么使得Configuration不被认可?
编辑:错误是:
"配置"名称在当前上下文中不存在
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<CollectionContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud) c# entity-framework-core asp.net-core asp.net-core-2.0 asp.net-core-3.0
在我的ViewModel中有一个需要2行标签的属性,但是当我<br />在DisplayName属性中放置HTML代码时,会将HTML代码打印到页面而不是被解释为换行符.有没有办法DisplayName让它有一个换行符呢?
视图:
<tr>
<td>
@Html.LabelFor(m => m.GrossGallons)
</td>
<td>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
视图模型:
[DisplayName("Gross Gallons <br /> (Max: 6,000)")]
public decimal GrossGallons { get; set; }
Run Code Online (Sandbox Code Playgroud)
输出试图得到:
Gross Gallons
(Max: 6,000)
Run Code Online (Sandbox Code Playgroud)