我正在使用 EntityFramework codefirst 方法。我的编码是
class Blog
{
[Key]
public int BlobId { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
class Post
{
[Key]
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlobId { get; set; }
public virtual Blog Blob { get; set; }
}
class BlogContext:DbContext
{
public BlogContext() : base("constr") { }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
class Program
{
static void Main(string[] args)
{
using (var db = new BlogContext())
{
Console.WriteLine("Enter a name for a new blob:");
var name = Console.ReadLine();
var b = new Blog { Name = name };
db.Blogs.Add(b);
db.SaveChanges();
直到这一步,我在我的 SQlserver 中创建了两个表(博客和帖子)。BlobId 是博客表中的主键。和帖子表中的外键。博客表中的 Blogid 是自动递增的。帖子表中的 postid 也是自动递增的
class Program
{
static void Main(string[] args)
{
using (var db = new BlogContext())
{
Console.WriteLine("Enter a name for a new blob:");
var name = Console.ReadLine();
var b = new Blog { Name = name };
db.Blogs.Add(b);
db.SaveChanges();
在这里,我在博客表中添加了名称
var id1 = from val in db.Blogs
where val.Name == name
select val.BlobId;
现在通过使用 Name 获取 blogs 表的 blogid
Console.WriteLine("Enter Title:");
var title = Console.ReadLine();
Console.WriteLine("Enter Content");
var content = Console.ReadLine();
var c = new Post { Title = title, Content = content, BlobId = id1};
db.Posts.Add(c);
db.SaveChanges();
这里正在读取标题、内容的数据。然后将标题、内容和 blogid(我从另一个表中获得)添加到 Posts 表中
我在 BlobId = id1 处收到错误
我越来越无法将类型'System.Linq.IQueryable'隐式转换为'int'这个错误
}
Console.ReadLine();
}
}
你能帮我解决这个问题吗?如果你不明白我的解释,请回复我