开发者

Entity Framework select single value from row

开发者 https://www.devze.com 2023-01-02 13:43 出处:网络
I am using Entity Framework from .NET 3.5 I have two tables with 0-1 to many relation. Let\'s say Citizen and City. Each citizen has foreign key column (ID) that connects him to City.

I am using Entity Framework from .NET 3.5

I have two tables with 0-1 to many relation. Let's say Citizen and City. Each citizen has foreign key column (ID) that connects him to City.

When i select single citizen, i also need to select the name of the city where he lives. Because city table contains tons of data that is not really related to citizen, so i don't want to retrieve it from database to 开发者_开发技巧save some bandwidth.

Currently i am using Include() function, but it grabs all the data from the City related to citizen, while i need only name.

Is there a way to write a query to select single cell from the whole row in EF and without creating new classes or interfaces or repositories? Here is my Include:

            Citizen citizen = db.Citizens.Include("Cities").First(p => p.citizen_id == id);


You do this by projecting, e.g.

var c = from c in db.Citizens
        where c.citizen_id == id
        select new
        {
            Name = c.Name,
            CityName = c.City.Name
        };

You can also project onto POCOs.

You cannot tell the EF to retrieve an object of type Citizen with a related City but with only City.Name filled in. The EF will not partially materialize an entity. Use view / presentation models or DTOs instead of entities when you need only a few fields.

0

精彩评论

暂无评论...
验证码 换一张
取 消