舉例如下:
Userinfo表有這樣的結構,其中Userinfo_ID是主鍵:
Userinfo_ID | UserName |
---|---|
1 | 張三 |
2 | 李四 |
然後Article表有這樣的內容:Article表的Userinfo_ID外鍵是Userinfo表中的Userinfo_ID。
Article_ID | Userinfo_ID | Outline |
---|---|---|
1 | 1 | 第一篇文章 |
2 | 2 | 第二篇文章 |
在代碼中,使用var article = db.Article.ToList();
article的Userinfo是null。
第一篇文章對應的作者應該是張三。第二篇文章對應的作者應該是李四。但是怎麼折騰都是null。
因小弟沒有豆子,但還是請各位大神幫我看看,多謝多謝
什么版本.关系绑定的配置方法.
新版本的是要include的.并且要先配置关系.
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: 意思是没看过官方教程吗. 看你的配置好想是可以的. db.ar.include(a=>a.userinfo).tolist()
https://docs.microsoft.com/zh-cn/ef/core/index
@吴瑞祥: 大佬,就是你说的这个,这两天忙着做项目,没上博客园,刚才看到你的答案,去试了一下,非常对啊,多谢多谢