Linq to SQL 插入数据时的一个问题

网络编程 2025-03-13 00:01www.168986.cn编程入门

所要操作的表结构定义如下:

```csharp

RSSFeedRight feedRight = new RSSFeedRight();

feedRight.UserId = userId;

feedRight.FeedId = feedId;

feedRight.RightValue = 0;

_Db.RSSFeedRights.InsertOnSubmit(feedRight);

_Db.SubmitChanges();

```

在深入研究后,我发现RSSFeedRight实体类中除了FeedId和UserId这两个字段外,还有两个指向UserInfo和RSSFeed表的字段。这使我逐渐意识到问题可能出在外键设置上。

通过搜索引擎,我找到了一个描述相似问题的帖子。其中提到,映射信息中的外键依赖方向设置错误。也就是说,它错误地认为表1中的主键(自增字段)是表2中的主键的外键。实际上,应该是相反的方向。

为了解决这个问题,我对表结构进行了调整。新的表结构定义如下:

```sql

create table RSSFeedRight (

Id int identity (1, 1) NOT NULL Primary Key,

FeedId int Foreign Key (FeedId) References RSSFeed(FeedId) NOT NULL,

UserId int Foreign Key (UserId) References UserInfo(UserId) NOT NULL,

RightValue bigint NOT NULL

)

```

在这个修改中,我增加了一个自动增长的主键字段Id,并将FeedId和UserId设置为外键,参照相应的表。这样修改后,问题得到了解决。

这次经历让我深刻体会到,技术领域的更新速度非常快,不经常学习和实践就容易遇到新的问题和挑战。作为一名“老兵”,我深知保持技术更新和不断学习的重要性。只有这样,才能在这个快速变化的时代中保持竞争力。

上一篇:用PHP代码给图片加水印 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by