Tag: poco

Linq表达式和扩展方法获取属性名称

我正在看这篇文章,它描述了一种在POCO属性之间进行数据绑定的简单方法: 数据绑定POCO属性 Bevan的评论之一包括一个简单的Binder类,可用于完成此类数据绑定。 它适用于我需要的东西,但我想实施Bevan为改进课程所做的一些建议,即: 检查是否已分配源和目标 检查sourcePropertyName和targetPropertyName标识的属性是否存在 检查两个属性之间的类型兼容性 此外,鉴于通过字符串指定属性容易出错,您可以使用Linq表达式和扩展方法。 然后而不是写作 Binder.Bind( source, “Name”, target, “Name”) 你可以写 source.Bind( Name => target.Name); 我很确定我可以处理前三个(虽然可以随意包含这些更改)但我不知道如何使用Linq表达式和扩展方法来编写代码而不使用属性名称字符串。 有小费吗? 以下是链接中的原始代码: public static class Binder { public static void Bind( INotifyPropertyChanged source, string sourcePropertyName, INotifyPropertyChanged target, string targetPropertyName) { var sourceProperty = source.GetType().GetProperty(sourcePropertyName); var targetProperty = target.GetType().GetProperty(targetPropertyName); source.PropertyChanged += (s, a) => { var […]

向客户端发送数据的最佳做法是什么:POCO或DTO?

我正在使用EF 4和POCO开始一个项目。 向客户端发送数据的最佳做法是什么? 我应该发送POCO还是应该有DTO? 在将实体(与上下文断开连接)发送到客户端时,我是否应该注意任何问题? 是否建议将POCO发送到客户端层?

entity framework渴望加载不返回数据,延迟加载

我首先使用代码EF5 ,我有一个对象,其集合定义为virtual (延迟加载)。 这会在调用时返回数据。 但是我希望它能够满载。 我从属性签名中删除了virtual ,但现在它总是返回null数据。 EF甚至不运行查询 ,任何人都可以帮忙吗? 编辑:我知道.include()我只是喜欢使用非虚拟属性方法。 对象 User ( [Key] Id在Resource对象上,该对象是person类的Parent): namespace Entities { [Table(“Users”)] public class User : Person { [Required] public ICollection Roles { get; set; } } } 角色: namespace Entities { public class Role { [Key] public string Id { get; set; } public virtual ICollection Users […]

是否可以阻止EntityFramework 4覆盖自定义属性?

我首先使用EF 4数据库+ POCO。 因为EF没有简单的方法来声明传入的DateTimes是种类的UTC,所以我将属性从自动生成的文件移动到另一个文件中的部分类。 private DateTime _createdOn; public virtual System.DateTime CreatedOn { get { return _createdOn; } set { _createdOn = (value.Kind == DateTimeKind.Unspecified) ? _createdOn = DateTime.SpecifyKind(value, DateTimeKind.Utc) : value; } } 但是,现在每次更新模型时,都会在T4代中再次创建自动化属性。 当然这会导致以下编译错误:“类型’Foo’已经包含’CreatedOn’的定义”。 有没有办法告诉EF不生成该属性并让我自己处理它? 更新 谢谢大家的答案…… 我创建了一个具有不同名称的新自定义属性。 public virtual System.DateTime CreatedOnUtc { get { return (CreatedOn.Kind==DateTimeKind.Unspecified) ? DateTime.SpecifyKind(CreatedOn, DateTimeKind.Utc) : CreatedOn; } set […]

使用Entity Framework 4和Code-First从数据库中排除字段/属性

我想知道有没有办法从数据库中排除一些字段? 例如: public class Employee { public int Id { get; set; } public string Name { get; set; } public string FatherName { get; set; } public bool IsMale { get; set; } public bool IsMarried { get; set; } public string AddressAs { get; set; } } 如何从数据库中排除AddressAs字段?

POCO,行为和持久性无知

从我所读到的POCO类应该是持久性无知,不应该包含对存储库的引用。 Q1。 鉴于上述情况,我将如何填充QuestionBlocks集合? 我已经读过,POCO应该包含行为,所以你不要以贫血模型结束,所以我有点困惑,因为如果没有持久性,应该如何做到这一点。 如果是这样的话,你会把什么样的行为放在POCO中? 例如: public class Survey { public int SurveyId { get; set; } public string Title { get; set; } public int BrandId { get; set; } public DateTime Created { get; set; } public List QuestionBlocks { get; set; } [ResultColumn] public string Name { get; set; } /// /// […]

如何将简单类序列化/反序列化为XML并返回

有时我想模拟我的类的存储数据而不设置数据库的往返。 例如,假设我有以下类: public class ShoppingCart { public List Items {get; set;} public int UserID { get; set; } } public class CartItem { public int SkuID { get; set; } public int Quantity { get; set; } public double ExtendedCost { get; set; } } 假设我在内存中构建了一个ShoppingCart对象,并希望将其“保存”为XML文档。 这是通过某种XDocument.CreateFromPOCO(shoppingCart)方法实现的吗? 在另一个方向怎么样:是否有一种内置方法可以从像new ShoppingCart(xDoc)这样的XML文档创建ShoppingCart对象?