开发者

Confused about navigational property/reference in Entity Framework

开发者 https://www.devze.com 2023-01-12 05:21 出处:网络
I\'m trying to learn Entity Framework and I\'m confused about navigational properties. I have a table named tblUser. It has a column named ManagerId which is has a self referencing foreign key to the

I'm trying to learn Entity Framework and I'm confused about navigational properties. I have a table named tblUser. It has a column named ManagerId which is has a self referencing foreign key to the UserId column. I've added this table to my EF model and I now have three "links" in my table entity properties:

tblUser1 开发者_StackOverflow中文版(type: EntityCollection<tblUser>)

tblUser2 (type: tblUser)

tblUser2Reference (type: EntityReference<tblUser>)

I'm confused about for what these are used for. I want to get the manager's name for a user, which one of these should I use and how?


EF numbers your navigation properties by default, so it might be confusing. You can rename the properties in the designer though:
tblUser1 to Users;
tblUser2 to Manager;
tblUser2Reference to ManagerReference.

Now you can get the manager name like this:

user.Manager.Name;

Regarding the other properties - tblUser1 (which we renamed to Users) is the other side of your Manager navigation property. It will contain a collection of users who have the current manager. It hasn't been pluralized by default, which makes it even more confusing. If you select "Pluralize or singularize generated object names" when generating the DB, it would rather generate smth like Users1, User1 and User1Reference.

And regarding EntityReference: http://msdn.microsoft.com/en-us/library/bb297956.aspx

Represents a related end of an association with a multiplicity of zero or one.

An EntityReference object is returned by a navigation property when the related end has a multiplicity of zero or one.

0

精彩评论

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