是否有一个标准的方法来使用EF代码优先枚举? 似乎有一些例子使用包装类的枚举。 但是,我想能够定义枚举,并使用数据库初始值设定项将枚举值也播种到数据库中。 在定义枚举和创build一个包装器方面似乎没有太多的意义,如果我必须从枚举中手动枚举数据库表。
我正在学习关于entity framework,并有问题! 有人可以澄清,如果我认为我无法从数据库中获得父母及子女的子女,是否正确? 例如… db.Parents .Include(p => p.Children) .Where(p => p.Children.Any(c => c.Age >= 5)) 这将返回所有有5岁以上孩子的父母,但是如果我重复通过Parents.Children收集,所有的孩子将在场(不只是5岁以上)。 现在查询确实对我有意义(我已经要求包括孩子,我已经得到了他们!),但是可以想象,在某些情况下,我希望将where子句应用于子集合。 问题: 我说的是正确的吗? 是否有可能得到父母,只是从数据库的一个子集,而不需要调用数据库的负载? 我的方式离开的标志? (不会是第一次)! 我发现了一些关于这个主题的博客和SOpost,但是没有什么能够解释我的小脑袋。 编辑 读过这个博客 (感谢达斯·刘易斯)…….我还是不明白! 在博客中给出的例子中,我可以看到如何通过一个Parent实例来实现它,但是我正在努力研究如何使用集合实现它。 我怎么能得到一个IEnumerable,其中每个父母都有一个过滤收集的儿童(年龄> = 5)? 进一步澄清: 在回答唐安德鲁的评论时,我在a)一个有5岁以上孩子的父母名单(只包括那些孩子)。 任何帮助感激, 谢谢。
当通过Entity Framework 4.1添加logging时,是否有直接的方式来检索数据库自动生成的主键? 例如: dbcontext.Entity_Tables.Add(new Entity_Table { item1 = val1, item2 = val2 }); dbcontext.SaveChanges(); newPK = ???; SQL等价物将是: newPK = executeOnDB("INSERT INTO Entity_Table (item1, item2) VALUES (val1, val2);SELECT @@Indentity";); 顺便说一下,我正在使用MySQL,但SQL将是一样的MSSQL
我正在使用WS类,它给了我错误,当我运行该应用程序: The type or namespace name 'Entity' does not exist in the namespace 'System.Data' 我有一个参考System.Data; 和System.Data.Entity; 但没有改变。 我不断收到错误。 我也在web.config行: <compilation debug ="true" targetFramework="4.0"/>
我正在使用代码devise我的数据库,我需要一点帮助。 我得到这个错误: 引入表'发票'上的FOREIGN KEY约束'SalesOrder_Invoices'可能会导致循环或多个级联path。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创build约束。 查看以前的错误。 我想要有以下的关系/关键: –> = 1 to Many Relationship 客户 – >客户位置 CustomerLocation – > SalesOrder SalesOrder – >发票 SalesRep – > SalesOrder PaymentTerm – >客户 PaymentTerm – > SalesOrder PaymentTerm – >发票 我试图按照以下标准来定义它们: <ClassName><PrimaryKeyID> 例如: Customer有ID属性,所以在CustomerLocation我定义了如下所示的外键: Public Property CustomerID AS Integer 我所要做的就是定义外键是否正确? […]
我首先在Entity Framework 4.1代码中有一个简单的代码: PasmISOContext db = new PasmISOContext(); var user = new User(); user.CreationDate = DateTime.Now; user.LastActivityDate = DateTime.Now; user.LastLoginDate = DateTime.Now; db.Users.Add(user); db.SaveChanges(); user.Avatar = new Avatar() { Link = new Uri("http://myUrl/%2E%2E/%2E%2E") }; db.SaveChanges(); db.Users.Add(new User() { Avatar = new Avatar() { Link = new Uri("http://myUrl/%2E%2E/%2E%2E") } }); db.SaveChanges(); 问题是我得到一个错误 保存不会为其关系公开外键属性的实体时发生错误。 EntityEntries属性将返回null,因为单个实体不能被识别为exception的来源。 通过在实体types中公开外键属性,可以更轻松地处理exception。 有关详细信息,请参阅InnerException。 […]
entity framework4.1代码首先很好地创build表和关系。 是否有可能使用代码优先的方法创buildSQL视图或存储过程? 任何关于这个指针将高度赞赏。 非常感谢!
所以,我的EF模型有关系,根据我在例子中看到的,这些关系应该用ICollection的虚拟属性来完成。 例: public class Task { public int Id { get; set; } public string Description { get; set; } public virtual ICollection<SubTask> { get; set; } } 我读的地方,我应该使用IEnumerable来防止延迟执行,是正确的? 这意味着如果我的DAL方法返回IEnumerable,仍然是IQueryable,那么SQL将在那个时候执行,而不是在我调用网页中的.TOList的那一刻。 那么,最佳做法是什么? 我应该返回什么? IEnumerable,List ?, IList,ICollection? 谢谢
我知道这个问题之前已经被问过无数次了,因为我已经阅读了很多关于利弊的文章,但是我仍然不能确定哪种方法适合我。 我对networking编程非常陌生,来自SQL DB Admin /报告撰写背景。 我已经决定尝试build立自己的网站,这个网站可能会在将来有30-40张桌子。 我已经看过两种方法,我喜欢实体模型的方法,因为我喜欢简单的devise师,我喜欢看到整个模型在我面前,它显示在一个快照的整体画面。 此外,我不是一个强大的程序员,我对它使用DbContext生成器模板生成POCO的方式留下了深刻的印象,并且完成了类之间的所有连接。 但是,尽pipe我喜欢模型优先方法,但是我觉得还有一些缺点,我不确定它们是否存在实际缺陷,或者我对模型第一方法和代码优先方法不够了解,因为我仍然很新的这个。 我对使用模式优先方法犹豫不决的原因是: – 主要是因为我在使用MVC 3的模式第一种方法上苦苦寻找教程。我发现使用DbContext的最好的教程是Julie Lerman,但是她并没有介绍使用数据注释和使其他在您重新生成POCO时不会丢失的更改。 大多数与MVC 3相关的教程似乎都使用了代码优先的方法。 大多数人认为这是因为导师不想把重点放在EF上,而是显示出更多的MVC。 我个人认为这是因为微软在其他方面支持Code First方法:) – 如果创build好友类是一个好习惯,为什么我找不到很多教程来展示MVC 3? Buddy类是View Models的另一个名称吗? 为什么我无法find任何教程由微软显示这些好友/视图模型使用MVC 3? – 我试图做两个表之间的基本1对1关系。 在模型中,首先必须将每个表的身份关键字设置为相同的字段,而不是在其中一个表中使用FK,当您有3个或更多表通过1对1关系相互关联时,可能会有点混淆。 在代码中,第一个方法是使用模型构build器并手动进行设置。 我想在MF中,你可以通过进入我根本不想做的XML来改变关系。 – 对代码优先问题的更多支持/帮助 我犹豫使用Code First方法的原因是: 我是一个新手编码器。 – 随着项目的扩展,我们很难跟踪表格和关系。 – 没有模型图,我不得不说我真的喜欢这个想法。 – 通过configuration类映射实体到数据库我觉得不可能:)。 更新表格将需要更改代码和数据库。 在模型中,首先只有一个模型会自动更新数据库和代码,说如果你使用好友类,你也可能需要更新这些。 现在我也看到有些人将Code First和Database第一种方法结合在一起,因为您不要让Code First生成数据库,而是手动创build数据库,并使用代码第一个API来获得它。 我的脑袋正旋转着所有的select和弊端,利弊。 我只是想创build我的网站,而不是思考采取哪种方法。 任何人都可以根据我所说的和/或他们认为未来更主stream的方式,给我一些他们认为最好的方法的见解吗? 非常感谢戴夫
我正在使用asp .net mvc 3,当我尝试在表中插入数据时,我遇到包含2个主键的实体的问题。 public class LineItem { [Key] public int OrderId { get; set;} [Key] public int LineNum { get; set;} public string ItemId { get; set;} public int Quantity { get; set;} public decimal UnitPrice { get; set; } } 当我尝试插入我得到这个错误: 无法确定types“ApplicationMVC3.Models.LineItem”的组合主键sorting。 使用ColumnAttribute或HasKey方法指定组合主键的顺序。 请有人帮我吧!