English 中文(简体)
实体框架 - 从导航属性中删除虚拟关键字
原标题:Entity Framework - Removing virtual keyword from navigation properties

我使用实体框架,首先使用数据库,同时使用EF 4.x DBContext 生成器。我的所有实体类别都有导航属性,标记为“虚拟”。我想从所有实体类别中删除虚拟关键字。大约有350个实体类别。

最佳回答

您必须修改 T4 模板 (. tt) 文件以删除虚拟关键字 。

问题回答

删除虚拟将意味着您无法为实体框架使用懒惰装入 。 在我看来, 懒懒装载范围有限, 大多被误用( 通常导致性能问题 ) 。 但是请注意, 关闭虚拟将意味着您在检索数据时可能需要调整您的代码, 以便手动装入额外的导航属性 。 您可以在您的 EF 查询中使用. include 来做到这一点 。

要删除虚拟旗帜, 您可能需要禁用您的 EF 生成器中的懒惰装入 。

You may want to try this VS extension, It adds (among other things) fine control over the virtual modifier: EF Designer Extender





相关问题
Entity Framework with MySQL connector in c#

I have been trying to get the Entity Framework to work in my web application using MySQL. It works fine on my local pc, but doesn t work when I put it on the server. Since the server is a shared ...

How Do I Create And Update A Many To Many Relationship With EF

I am using the Entity Framework with SQL Server. I have a many to many relationship between 2 tables. I have created a join table with just the primary key fields of the 2 tables. In the designer, the ...

Entity Framework with File-Based Database

I am in the process of developing a desktop application that needs a database. The application is currently targeted to SQL Express 2005 and works wonderfully. However, I m not crazy about having ...

Linq to enties, insert foreign keys

I am using the ADO entity framework for the first time and am not sure of the best way of inserting db recored that contain foreign keys. this is the code that i am using, I would appreciate any ...

Entity Framework - Many to many question

I have a table called ASB and a table called PeopleInvolved. There is a junction table called PeopleInvolved_ASB which simply contains an ASBID and a PeopleInvolvedID column. The columns act as a ...

Post back complex object from client side

I m using ASP.NET MVC and Entity Framework. I m going to pass a complex entity to the client side and allow the user to modify it, and post it back to the controller. But I don t know how to do that ...

ADO.NET Entity Data Model are not precise enough

I run this code: var cos = from k in _db.klienci_do_trasy where k.klient_id == 5 select k; but the query send to database is: SELECT * FROM `klienci_do_trasy` LIMIT 0, 30 why is it for, there ...