我发现,如果您熟悉SQL语法,则使用LINQ查询语法会更清晰,更自然,并且更容易发现错误:
var id = 1;var query = from post in database.Posts join meta in database.Post_metas on post.ID equals meta.Post_ID where post.ID == id select new { Post = post, meta = meta };但是,如果您真的很喜欢使用lambda,那么您的语法就会有些偏离。这是使用LINQ扩展方法的相同查询:
var id = 1;var query = database.Posts // your starting point - table in the "from" statement .Join(database.Post_metas, // the source table of the inner join post => post.ID, // Select the primary key (the first part of the "on" clause in an sql "join" statement) meta => meta.Post_ID, // Select the foreign key (the second part of the "on" clause) (post, meta) => new { Post = post, meta = meta }) // selection .Where(postAndmeta => postAndmeta.Post.ID == id); // where statement


