2

仅以此为例...

以下是我的 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. 处理我需要知道的外键是否有什么特别之处,或者我可以像处理地址或电话号码一样分配它吗?

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

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

首先我无法检索用户ID,这是我尝试过的:

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

但它说由于某种原因我不能将它转换为 Guid。

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

谢谢,
马特

4

1 回答 1

1

如果数据库包含外键关系的适当约束,则您的类中应该有一个成员UserProfile,它指向一个User对象。这个名字可能有点奇怪,比如UserProfileUser或类似的东西。

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

于 2009-06-23T17:30:24.150 回答