草庐IT

working-with-models

全部标签

c# - EF 代码优先 : DropCreateDatabaseIfModelChanges doesn't work

我在我的Global.asax中使用以下代码:DbDatabase.SetInitializer(newDropCreateDatabaseIfModelChanges());但是好像不行。尽管我的模型已更改并且我正在尝试使用其中一个新添加的表,但它只是说找不到该表。Invalidobjectname'dbo.TableName'.但是,如果我运行它,它似乎可以工作,并且正在创建表:DbDatabase.SetInitializer(newDropCreateDatabaseAlways());它确实更新了我的数据库。我做错了什么? 最佳答案

c# - Entity Framework : The context is being used in Code First mode with code that was generated from an EDMX file

我正在使用EF6数据库优先方法开发一个WPF应用程序,我的解决方案中有一个项目,如果我运行我的项目,这个错误总是出现。上下文在代码优先模式下使用,代码是从数据库优先或模型优先开发的EDMX文件生成的。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用数据库优先或模型优先,请确保EntityFramework连接字符串包含在启动项目的app.config或web.config中。如果您要创建自己的DbConnection,请确保它是一个EntityConnection而不是其他类型的DbConnection,并且您将它传递给采用DbConnection的基本Db

c# - "Possible multiple enumeration of IEnumerable"与 "Parameter can be declared with base type"

在Resharper5中,以下代码导致list出现警告“Parametercanbedeclaredwithbasetype”:publicvoidDoSomething(Listlist){if(list.Any()){//...}foreach(variteminlist){//...}}在Resharper6中,情况并非如此。但是,如果我将方法更改为以下内容,我仍然会收到该警告:publicvoidDoSomething(Listlist){foreach(variteminlist){//...}}原因是,在这个版本中,list只枚举一次,所以改成IEnumerable不会自动

c# - 具有路由属性的模糊 Controller 名称 : controllers with same name and different namespace for versioning

我正在尝试添加API版本控制,我的计划是为不同命名空间中的每个版本创建一个Controller。我的项目结构是这样的(注意:每个版本没有单独的区域)Controllers||---Version0||||-----ProjectController.cs||-----HomeController.cs||---Version1||-----ProjectController.cs|-----HomeController.cs我正在为路由使用RoutingAttribute。因此,Version0中的ProjectController具有路由功能namespaceMyProject.Co

c# - DropCreateDatabaseIfModelChanges EF6 导致 System.InvalidOperationException : The model backing the context has changed

迁移到EntityFramework6后,我在构建服务器上执行单元测试时遇到错误。我正在使用DropCreateDatabaseIfModelChanges初始化程序。当我将其更改为MigrateDatabaseToLatestVersion时一切正常,但我想坚持使用之前的初始化程序。我得到的错误是:System.InvalidOperationException:System.InvalidOperationException:Themodelbackingthe'AppContext'contexthaschangedsincethedatabasewascreated.Consi

c# - LINQ Order By Descending with Null Values on Bottom

这个问题在这里已经有了答案:LINQorderbynullcolumnwhereorderisascendingandnullsshouldbelast(10个答案)关闭8年前。我有这样的表达:troubletickets=db.ServiceTickets.Include(t=>t.Company).Include(t=>t.UserProfile);troubletickets.OrderByDescending(t=>t.UserProfile!=null?t.UserProfile.FirstName:"ZZZ");我必须检查UserProfile是否为null,因为如果不这样

c# - 如何显示 "Open with"文件对话框?

有什么简单的方法可以打开“打开方式”文件对话框吗? 最佳答案 一些使用ProcExp的逆向工程揭示了一个rundll32.exe命令行是有效的。这是一个使用它的示例程序:usingSystem;usingSystem.Diagnostics;usingSystem.IO;classProgram{staticvoidMain(string[]args){ShowOpenWithDialog(@"c:\temp\test.txt");}publicstaticvoidShowOpenWithDialog(stringpath){var

c# Panel with auto scroll - 在控件焦点上重置滚动条位置

这是一个Windows窗体。面板有AutoScroll=True我正在向主面板动态添加面板,最终超出了主面板显示矩形。然后将标签、组合框和文本框添加到添加的面板。如果我选择一个组合框或文本框,它会将主面板滚动条位置重置为0,并且组合框的下拉菜单将放置在屏幕X、Y上,如果没有滚动条,它应该位于该位置重置。我正在考虑在选择控件时保存滚动位置。经过测试,滚动位置似乎尚未重置,因此我可以在此处捕获它。然后我希望在面板的某个事件上恢复滚动位置。我正在尝试找出我将使用什么事件来恢复滚动位置。我也希望下拉菜单在我执行此操作时将放置在正确的x,y处。更好的解决方案是创建一个基于面板控件的自定义控件并可

c# - Autofac - 自动注册错误 : No constructors can be found with 'Public binding flags'

这是我的Global.asax.cspublicvoidRegisterContainersUsingAutofac(){//http://elegantcode.com/2009/01/07/ioc-libraries-compared///http://www.codeproject.com/Articles/25380/Dependency-Injection-with-Autofac//https://code.google.com/p/autofac///http://api.autofac.org/varbuilder=newContainerBuilder();build

c# - 自定义验证属性 : Comparing two properties in the same model

有没有一种方法可以在ASP.NETCore中创建自定义属性,以使用ValidationAttribute验证一个日期属性是否小于模型中的其他日期属性。假设我有这个:publicclassMyViewModel{[Required][CompareDates]publicDateTimeStartDate{get;set;}[Required]publicDateTimeEndDate{get;set;}=DateTime.Parse("3000-01-01");}我正在尝试使用这样的东西:publicclassCompareDates:ValidationAttribute{publi