首页 新闻 会员 周边

c# EntityFramework 外鍵查詢為null

0
[已解决问题] 解决于 2018-08-29 19:06

舉例如下:
Userinfo表有這樣的結構,其中Userinfo_ID是主鍵:

Userinfo_IDUserName
1 張三
2 李四

然後Article表有這樣的內容:Article表的Userinfo_ID外鍵是Userinfo表中的Userinfo_ID。

Article_IDUserinfo_IDOutline
1 1 第一篇文章
2 2 第二篇文章

在代碼中,使用var article = db.Article.ToList();

article的Userinfo是null。
第一篇文章對應的作者應該是張三。第二篇文章對應的作者應該是李四。但是怎麼折騰都是null。

因小弟沒有豆子,但還是請各位大神幫我看看,多謝多謝

leeviny的主页 leeviny | 初学一级 | 园豆:164
提问于:2018-08-26 13:14
< >
分享
最佳答案
0

什么版本.关系绑定的配置方法.

新版本的是要include的.并且要先配置关系.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2018-08-26 13:22

Article表:

DROP TABLE IF EXISTS `ARTICLELIST`;
CREATE TABLE `ARTICLELIST` (
`ARTICLELIST_ID` int(10) NOT NULL COMMENT '文章列表ID',
`TITLE` varchar(40) DEFAULT NULL COMMENT '文章標題',
`OUTLINE` varchar(200) DEFAULT NULL COMMENT '文章簡介',
`DATE` datetime DEFAULT NULL COMMENT '文章發表日期',
`USERINFO_ID` int(10) DEFAULT NULL COMMENT '用戶表ID',
`PRAISE` int(10) DEFAULT NULL COMMENT '贊的次數',
`READCOUNT` int(10) DEFAULT NULL COMMENT '閱讀次數',
`CLASSES_ID` int(3) DEFAULT NULL COMMENT '文章類別ID',
`ARTICLE_ID` int(10) DEFAULT NULL COMMENT '文章ID',
PRIMARY KEY (`ARTICLELIST_ID`),
KEY `文章作者索引` (`USERINFO_ID`),
KEY `文章類型索引` (`CLASSES_ID`) USING BTREE,
KEY `文章內容索引` (`ARTICLE_ID`) USING BTREE,
CONSTRAINT `文章索引` FOREIGN KEY (`ARTICLE_ID`) REFERENCES `ARTICLE` (`ARTICLE_ID`),
CONSTRAINT `文章類型索引` FOREIGN KEY (`CLASSES_ID`) REFERENCES `CLASSES` (`CLASSES_ID`),
CONSTRAINT `關聯用戶名` FOREIGN KEY (`USERINFO_ID`) REFERENCES `USERINFO` (`USERINFO_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

Userinfo表:

DROP TABLE IF EXISTS `USERINFO`;
CREATE TABLE `USERINFO` (
`USERINFO_ID` int(10) NOT NULL,
`USERNAME` varchar(50) DEFAULT NULL COMMENT '用戶名',
`USERPWD` varchar(50) DEFAULT NULL COMMENT '密碼',
`ARTICLE_COUNT` int(10) DEFAULT NULL COMMENT '發表文章總數',
`POWER_ID` int(2) DEFAULT '1' COMMENT '權限索引',
`AGE` int(3) DEFAULT NULL COMMENT '年齡',
`SEX` int(1) DEFAULT NULL COMMENT '性別',
`HEIGHT` double DEFAULT NULL COMMENT '身高',
`WEIGHT` double DEFAULT NULL COMMENT '體重',
`PHONE` int(14) DEFAULT NULL COMMENT '手機',
`EMAIL` varchar(50) DEFAULT NULL COMMENT '郵箱',
`PROFESSION` varchar(20) DEFAULT NULL COMMENT '職業',
`INTERESTS_ID` int(3) DEFAULT NULL COMMENT '興趣索引',
`FORBIDDEN` int(3) DEFAULT NULL COMMENT '小黑屋',
`BIRTH` datetime DEFAULT NULL COMMENT '出生',
`LEVEL` int(3) DEFAULT NULL COMMENT '等級',
`AUTHENTIC` int(1) DEFAULT NULL COMMENT '認證用戶',
`REGISTERDATE` datetime DEFAULT NULL COMMENT '註冊日期',
PRIMARY KEY (`USERINFO_ID`),
KEY `權限索引` (`POWER_ID`) USING BTREE,
KEY `興趣索引` (`INTERESTS_ID`) USING BTREE,
CONSTRAINT `權限表ID` FOREIGN KEY (`POWER_ID`) REFERENCES `POWERS` (`POWER_ID`),
CONSTRAINT `興趣表ID` FOREIGN KEY (`INTERESTS_ID`) REFERENCES `INTERESTS` (`INTERESTS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

Article的Model:

[Table("ARTICLELIST")]
public partial class Articlelist
{
[Column("ARTICLELIST_ID", TypeName = "int(10)")]
public int ArticlelistId { get; set; }
[Column("TITLE", TypeName = "varchar(40)")]
public string Title { get; set; }
[Column("OUTLINE", TypeName = "varchar(200)")]
public string Outline { get; set; }
[Column("DATE", TypeName = "datetime")]
public DateTime? Date { get; set; }
[Column("USERINFO_ID", TypeName = "int(10)")]
public int? UserinfoId { get; set; }
[Column("PRAISE", TypeName = "int(10)")]
public int? Praise { get; set; }
[Column("READCOUNT", TypeName = "int(10)")]
public int? Readcount { get; set; }
[Column("CLASSES_ID", TypeName = "int(3)")]
public int? ClassesId { get; set; }
[Column("ARTICLE_ID", TypeName = "int(10)")]
public int? ArticleId { get; set; }

[ForeignKey("ArticleId")]
[InverseProperty("Articlelist")]
public Article Article { get; set; }
[ForeignKey("ClassesId")]
[InverseProperty("Articlelist")]
public Classes Classes { get; set; }
[ForeignKey("UserinfoId")]
[InverseProperty("Articlelist")]
public Userinfo Userinfo { get; set; }
}

 

哎,本周才开始接触EF,以前都是直接使用查询语句查询的,例如left join之类的,现在让我用EF,不太会用这家伙,请大神看看,帮帮我,百度我都搜烂了

 

 

leeviny | 园豆:164 (初学一级) | 2018-08-26 13:52

@leeviny: 意思是没看过官方教程吗.  看你的配置好想是可以的.  db.ar.include(a=>a.userinfo).tolist()

https://docs.microsoft.com/zh-cn/ef/core/index

吴瑞祥 | 园豆:29449 (高人七级) | 2018-08-26 14:26

@吴瑞祥: 大佬,就是你说的这个,这两天忙着做项目,没上博客园,刚才看到你的答案,去试了一下,非常对啊,多谢多谢

leeviny | 园豆:164 (初学一级) | 2018-08-29 19:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册