可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 5 years ago.
I've been programming for a while and have used LINQ-To-SQL and LINQ-To-Entities before (although when using entities it has been on a Entity/Table 1-1 relationship - ie not much different than L2SQL)
I've been doing a lot of reading about Inversion of Control, Unit of Work, POCO and repository patterns and would like to use this methodology in my new applications.
Where I'm struggling is finding a clear, concise beginners guide for EF4 which doesn't assume knowledge of EF1.
The specific questions I need answered are:
Code first / model first? Pros/cons in regards to EF4 (ie what happens if I do code first, change the code at a later date and need to regenerate my DB model - Does the data get preserved and transformed or dropped?)
Assuming I'm going code-first (I'd like to see how EF4 converts that to a DB schema) how do I actually get started? Quite often I've seen articles with entity diagrams stating "So this is my entity model, now I'm going to ..." - Unfortunately, I'm unclear if they're created the model in the designer, saved it to generate code then stopped any further auto-code generation -or- They've coded (POCO)? classes and the somehow imported them into the deisgner view?
I suppose what I really need is an understanding of where the "magic" comes from and how to add it myself if I'm not just generating an EF model directly from a DB.
I'm aware the question is a little vague but I don't know what I don't know - So any input / correction / clarification appreciated.
Needless to say, I don't expect anyone to sit here and teach me EF - I'd just like some good tutorials/forums/blogs/etc. for complete entity newbies
回答1:
These articles might be of interest...the series really gets into the advantages and disadvantages of a POCO approach.
http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx
http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and-explicit-loading.aspx
http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx
In these articles the author mentions future articles that describe best practices in implementing Repository and Unit of Work patterns, but I can't find them. These articles are well written and I'd like to read more from this author.
回答2:
I've come across this: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx
Which gives you step-by-step for code first. It does require the CTP 3 for EF4 (Download linked from that article).
This is pretty close to what I was after (although ideally a solution that doesn't rely on a CTP would've been preferable)
回答3:
I do recommend that you take a half hour or so and generate a stable EF1.0 model in your current VS. That will get you a long way towards understanding the metaphors and concepts of EF 4.0. Just whip up a simple Customer, Products and Orders db...I recommend doing your own and not using Northwind.
回答4:
This is a great question, but tough to keep up to date as Entity Framework continues to mature. Probably the best place to start that will stay up to date into the future is Microsoft's EF page.
A few other links I found helpful while Googling (focused on Code First):
- Getting Started with EF using MVC Tutorial
- Code First Development with Entity Framework Video from TechEd 2010
- Scott Gu's post on Code-First Development with EF4
- MSDN Entity Framework 4.1 and 4.2
回答5:
You can take Lerman's book or something simplier like "Pro linq object-relational mapping". All concepts are still the same with POCO, except that now you should disable code generation and map directly to your model in edmx csdl (or create your own POCO generator). All mapping principles are the same also. Anyhow in run time you are working with proxy which is derived from your POCO object so you should concern about interception support (virtualization of your POCO properties).
回答6:
There are also these tutorials:
- https://danielwertheim.wordpress.com/2010/05/16/entity-framework-4-ctp3-code-first-vs-linq-to-sql/
- https://danielwertheim.wordpress.com/2009/12/20/updates-to-putting-entity-framework-4-to-use-in-a-business-architecture/
回答7:
Here's a walkthrough on the POCO Template for the Entity Framework that looked pretty good. You might also want to check out the ADO.NET team blog. If you want to start at the beginning(EF v1.0) as a base for your EF knowledge, I found Julia Lerman's Programming Entity Framework book very complete.
回答8:
Dont have the rep to comment on an answer, but here is a follow up to Jinkinz answer:
Using Repository and Unit of Work patterns with Entity Framework 4.0:
http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx
回答9:
Julia Lerman has a nice series of introductory videos, about 10 minutes each. They're introductory, but there are plenty of practical tips that get some potential learning roadblocks out of the way. I especially liked her demonstration of watching the actual SQL go by using SQL Server Profiler.
回答10:
If you are going to use disconnected cenarios, I recommend you to read Julie Lerman book: "Programming DbContext", in special Chapter 4.
I found a lot of examples in blogs, etc, but almost all of them are about connected cenarios.
I'm starting too. and these book helped me a lot. By the way, I bought her three books.
回答11:
I was looking for the same answers and came across http://www.dotnetcurry.com/ShowArticle.aspx?ID=599
At the end of the link, there are few links which will get you rolling with Entity Framework 4.
Hope this helps
回答12:
Wow, lots of answers. How about an example which contains a tweaked version of T4 templates that generate POCO + interfaces + repositories altogether?
https://entityinterfacegenerator.codeplex.com