我有这样的情况,我在DatabaseInitializer()中为EF 4.1初始化我的模型,并得到这个恼人的错误"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."
所以,我去了这个EntityValidationErrors,有一个字段{System.Data.Entity.Validation.DbEntityValidationResult}
,根本没有给我任何关于它无法初始化的字段的信息.有没有办法获得有关此错误的更多信息?
清除问题:
我知道如何解决字符串长度问题.我问的是如何获得打破模型的确切字段名称.
我对NuGet的智能感知并没有显现出来.或者也许有某种捷径?
这是问题所在:我需要返回带有过滤嵌套集合的对象集合.例如:有一个带有订单的商店,我需要返回一个包含商店的集合,这些商店包含带有订单的嵌套集合,但没有标记为已删除的客户的订单.
这是我尝试做的.但仍然没有运气.任何建议值得赞赏:)
public List<StoreEntity> GetStores(Func<Store, bool> storeFilter, Predicate<OrderEntity> orderFileter)
{
IQueryable<StoreEntity> storeEntities = Context.Stores
.Include(o => o.Order)
.Include(cu => cu.Orders.Select(c => c.Customer))
.Where(storeFilter)
//.Where(rcu=>rcu.Orders.Select(cu=>cu.Customer.Deleted==false)) //just test this doesn't work
.AsQueryable();
List<StoreEntity> storeEntities = storeEntities.ToList();
//storeEntities.ForEach(s => s.Orders.ToList().RemoveAll(c=>c.Customer.Deleted==true)); // doesn't work
foreach (StoreEntity storeEntity in storeEntities)
{
storeEntity.Orders.ToList().RemoveAll(r=>r.Customer.Deleted==true);
}
return storeEntities;
}
Run Code Online (Sandbox Code Playgroud)
问题是没有应用过滤器.已将已删除标记设置为true的客户留在集合中.
我花了相当多的时间来解决这个问题,但仍然无法弄清楚为什么EF团队使用Code First让生活如此艰难.
以下是一些示例:
我的POCO:
我想要的东西看起来像:
public class Post
{
public int Id {get; set;}
public string Text {get; set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Post>()
.Property(p => p.Text)
.HasColumnType("nvarchar(max)");
}
Run Code Online (Sandbox Code Playgroud)
唯一有效的方法:
public class Post
{
public int Id {get; set;}
[StringLength(4000)]
public string Text {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
问题是,在第一种情况下,我尝试插入它给我的任何东西:Validation failed for one or more entities
第二种情况不适合我的商业模式.
我是唯一有这个问题的人吗?我该如何处理这件事?
有没有人知道什么时候第一本ASP.NET MVC 3出版?我知道这有点早,但我想知道Apress,Wrox或任何其他出版商是否有一些发布日期.
我正在为我正在开发的应用程序构建多语言支持.在做了一些研究和阅读SO(国际化最佳实践)后,我试图以"框架友好"的方式将其整合.我现在所做的是:
创建的.resource模块格式如下:
resources.en-US.js
define(function () {
return {
helloWorlLabelText: "Hello world!"
}
});
Run Code Online (Sandbox Code Playgroud)
在app.start上,我获得了带有requirejs的资源模块,并将所有数据分配给app.resources.在每个模块内部,特定资源被分配给可观察对象,并通过文本绑定到标签和其他与文本相关的东西来绑定.像这样:
define(function (require) {
var app = require('durandal/app'),
router = require('durandal/plugins/router')
};
return{
helloWorldLabelText: ko.observable(app.resources.helloWorldLabelText),
canDeactivate: function () {
}
}
});
On the view:
<label for="hello-world" data-bind="text: helloWorldLabelText"></label>
Run Code Online (Sandbox Code Playgroud)
只需将新模块分配给app.resources即可交换资源.
现在问题是当语言被改变并且一些视图已经被渲染时,先前语言的值仍然存在.所以我最终在activate方法中重新分配了observable .还尝试将app.resources包装到observable中,但这也不起作用.
我不认为我最干净的方式,也许还有其他人可以分享其他方式.谢谢.
javascript internationalization requirejs knockout.js durandal
该[Email]
属性将被构建到ASP.NET MVC 3中,就像它在期货中一样?它现在可用还是不可用?我想这是一个相当愚蠢的问题,但我花了一些时间谷歌搜索,并没有找到任何正常的答案.
电子邮件正则表达式:
"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$"
Run Code Online (Sandbox Code Playgroud) 我希望尽可能保持项目结构的清洁.样品:
--BlogApp.sln
--BlogApp.Data
BlogModel.edmx (the EF mappings)
Post.cs (I end up having partial classes in here with attributes)
--BlogApp.Domain
--Entities
Post.cs (I would like to have my POCOs here with all its additional logic)
--Repositories
PostsRepository.cs
--BlogApp.Ui
(standard MVC structure)
Run Code Online (Sandbox Code Playgroud)
当我使用EF作为我的ORM时,我最终弄得一团糟.任何人都可以建议一些"干净"的方式来构建项目吗?或许您可以建议一些最常用的标准项目结构.
asp.net-mvc entity-framework projects-and-solutions project-structure
运行生成器输出文件后,代码看起来真的很混乱.我知道我可能永远不会查看这些文件,但很高兴看到在开发生成器时生成的代码结构很好.
欢迎任何建议.
现在很少有任何项目不使用任何类型的CSS预处理器,如Sass或LESS.虽然它已被广泛接受并且优势非常明显(如更结构化的代码,没有include
性能下降和许多其他).如果有任何huge
缺点,我会徘徊.我能想到的就是太大的嵌套选择器,它们在重新绘制/回流期间表现不佳.not
使用预处理器的任何其他原因?
.net ×4
asp.net-mvc ×1
attributes ×1
c# ×1
css ×1
durandal ×1
filtering ×1
javascript ×1
knockout.js ×1
less ×1
linq ×1
nuget ×1
orm ×1
requirejs ×1
sass ×1
t4 ×1
validation ×1