仅以此为例......

以下是我的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);

一些问题......

  1. 处理我需要知道的外键有什么特别之处,或者我可以像处理Address或PhoneNumber那样分配它吗?

  2. UserId是一个Guid,我需要从当前用户的UserId中检索它。我似乎无法访问Membership类或User类(这是一个C#库,所以我猜它需要一个参考,但我的项目已经引用我的库,所以我不能参考或我会有循环依赖)

  3. 我不太明白如何处理Guids。实现 getProfileByUserName(string userName)时,这是我的问题......

  4. 首先我无法检索UserID,这是我尝试的内容:

    Guid currUser = (Guid)from user in _ myDB.aspnet_Users
                                 where user.UserName == userName
                                 select new { user.UserId };
    

    但它说我不能因为某种原因把它投到Guid上。

    如果您能对这些问题提供任何见解,我将不胜感激!

    谢谢,结果 马特

有帮助吗?

解决方案

如果数据库包含外键关系的正确约束,则 UserProfile 类中应该有一个成员,该成员指向 User 对象。名称可能有点奇怪,例如 UserProfileUser 或类似名称。

但是,您可以在图表中更改此名称。只需设置一个指向用户实体对象的指针,框架就会为您分配正确的ID。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top