仅以此为例......
以下是我的UserProfile表中的列:
ProfileID (主键)
UserID (外键)
地址
******中国
现在,当我想使用LINQ to Entities将新用户添加到数据库时,我正在做的是:
UserProfile profileToAdd;
profileToAdd.ProfileID = 0;
profileToAdd.Address = "123 MyStreet";
profileToAdd.PhoneNumber = "123-4567";
/* How do I add in the UserID here? */
_myDB.AddToUserProfiles(profileToAdd);
一些问题......
处理我需要知道的外键有什么特别之处,或者我可以像处理Address或PhoneNumber那样分配它吗?
UserId是一个Guid,我需要从当前用户的UserId中检索它。我似乎无法访问Membership类或User类(这是一个C#库,所以我猜它需要一个参考,但我的项目已经引用我的库,所以我不能参考或我会有循环依赖)
我不太明白如何处理Guids。在实施getProfileByUserName(string userName)
时,这是我的问题......
首先我无法检索UserID,这是我尝试的内容:
Guid currUser = (Guid)from user in _ myDB.aspnet_Users
where user.UserName == userName
select new { user.UserId };
但它说我不能因为某种原因把它投到Guid上。
如果您能对这些问题提供任何见解,我将不胜感激!
谢谢,
马特
答案 0 :(得分:1)
如果数据库包含外键关系的正确约束,则UserProfile
类中应该有一个指向User
对象的成员。名称可能有点奇怪,例如UserProfileUser
或类似的东西。
但是,您可以在图表中更改此名称。只需设置一个指向用户实体对象的指针,框架就会为您分配正确的ID。