Ошибка базы данных при работе с Entity Framework - PullRequest
0 голосов
/ 24 апреля 2018

То, чего я пытаюсь достичь, довольно просто. Я хочу просто иметь локальный файл базы данных, из которого я могу отображать записи в виде списка, используя Entity Framework. Проблема в том, что каждый раз, когда я его строю, я получаю эту ошибку:

'DiaryEntities' не содержит определения для 'Title', и не найден метод расширения 'Title', принимающий первый аргумент типа 'DiaryEntities' (вам не хватает директивы using или ссылки на сборку?)

Моя база данных называется Diary, и у меня есть только одна таблица с именем Entries, которая содержит столбцы Title, Date и Content. И вот мои файлы:

//main.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace diary
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            using (diary.DiaryEntities de = new DiaryEntities())
            {
                var diaries = (from m in de.Diary select m.Title);
                listBox1.Items.AddRange(diaries.ToArray());
            }
        }
    }
}

//DiaryEntities.Context.cs
namespace jurnal1
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class DiaryEntities : DbContext
    {
        public DiaryEntities() : base("name=DiaryEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<DiaryEntities>Diary { get; set; }
    }
}

1 Ответ

0 голосов
/ 24 апреля 2018

измените свой код на это:

namespace jurnal1 {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Infrastructure;
        using System.ComponentModel.DataAnnotations.Schema;

        public partial class DiaryEntities : DbContext {

            public DiaryEntities ( )
                : base ( "name=DiaryEntities" ) {
            }

            protected override void OnModelCreating ( DbModelBuilder modelBuilder ) {

            }
            public DbSet<Entries> Diary { get; set; }

        }

        [Table("entries")]
        public class Entries {
            public int Id { get; set; }
            public string Title { get; set; }
            public DateTime Date { get; set; }
            public string Content { get; set; }
        }
    }
}

проверьте проект GITHUB Я пытаюсь это сделать, думаю, проблема в том, что модели нужен ключ, поэтому добавьте идентификатор,Я думаю, что в вашей таблице базы данных есть больше столбцов, попробуйте проект по ссылке, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...