问题:在具有一对多关系的表之间创建的URL不正确。我该如何解决这个问题?
我正在使用LINQ to SQL和动态数据。
我有两个表:用户和地址:
* There is a one-to-many from Users TO Addresses ie: A user may have one or more addresses.
* The two tables are NOT linked using their primary keys, but using a separate GUID field.
* The User table has Id (int) as it's PK and 'PrincipalId' (Guid) as the linking key
* The Addresses table has AddressId(int) as it's PK and 'PrincipalId' (Guid) as the linking key
* 'PrincipalId' is unique in the user table.
* The 'Association' looks good in the DataAccess class, and was done using the dbml designer.
症状:
在查看用户表时,我会在末尾看到一个列,其中包含“查看用户地址”链接,如下所示:http://dev.cityslurp.com/Addresses/List.aspx?PrincipalId=18
注意:
所以即使#3给我一个错误,我认为这是正确的查询参数。
相反,当我转到Address / List.aspx页面时,我有一个链接回用户详细信息页面的列。链接正确显示用户的电子邮件地址作为文本,但链接错误。例如,对于同一个用户,他们在地址列表页面中的链接是:http://dev.cityslurp.com/Users/Details.aspx?Id=157221ef-c85c-4fdf-b861-60d149e11bfc
注意:
我假设链接应该如下所示:http://dev.cityslurp.com/Users/Details.aspx?Id=70,用于查看用户详细信息。
我认为这可能是一个错误,但其他人之前使用非PK字段成功地使用了一对多的关系?
关系看起来很好,因为他们正在使用我指定的字段。
以下是自动生成的DataAccess文件中关系的示例:
[表(名称= “dbo.Address”)] public partial class地址:INotifyPropertyChanging,INotifyPropertyChanged {
...
[Association(Name="Users_Address", Storage="_Users", ThisKey="PrincipalId", OtherKey="PrincipalId", IsForeignKey=true)]
public Users Users
{
get
{
...
有什么想法怎么办?我知道我可以为用户和地址创建自定义列表页面,但我正在寻找一种更简单的方法 - 可能在其中一个部分类上放置一个属性来告诉他们该做什么。
干杯, 兰斯