EntityFrameworkコードファーストアプローチを使用しています。私のコーディングは
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 に 2 つのテーブル (ブログと投稿) を作成しました。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();
ここでは、タイトル、コンテンツのデータを読み取っています。次に、タイトル、コンテンツ、ブログ ID (別のテーブルから取得したもの) を Posts テーブルに追加します。
BlobId = id1 でエラーが発生しました
' System.Linq.IQueryable ' 型を暗黙的に変換できませんこのエラーが発生しています
}
Console.ReadLine();
}
}
これを解決するのを手伝ってくれませんか。私が説明したことを理解していない場合は、返信してください