0

この質問に対する答えを探しています。どこに問題があるのか​​わからない。Visual Studio では問題やエラーは表示されませんが、プログラムを実行してデータベースに何かを追加しようとすると、アプリケーションがクラッシュし、VS でテーブルが存在しないと通知されます。そのイベントは何かを追加するためのものです。

これは私のコードです:

private void addBtn_Click(object sender, RoutedEventArgs e)
{
        using (WpisyDataContext BazaDanych = new WpisyDataContext(strConnectionString))
        {
            if (!BazaDanych.DatabaseExists())
            {
                BazaDanych.CreateDatabase();
                MessageBox.Show("BazaDanych Database Created Successfully!!!");
            }

            Wpis newWpis = new Wpis
            {

                RecordID = index_box.Text,
                NameRec = name_box.Text.ToString(),
                BeneficiaryRec = beneficiary_box.Text.ToString(),
                PriceRec = price_box.Text.ToString(),
                DeadlineRec = deadline_box.Text.ToString(),
                DescriptionRec = description_box.Text.ToString()
            };

            BazaDanych.Wpisy.InsertOnSubmit(newWpis);
            BazaDanych.SubmitChanges();
            MessageBox.Show("Recoed Added Successfully!!!");
            if (NavigationService.CanGoBack)
            {
                NavigationService.GoBack();
            } 
        }  
    }
}

これはテーブル コード ( Wpis.cs) です。

using System.Data.Linq.Mapping;
namespace ********
{
    [Table]
    public class Wpis
    {
        [Column(IsPrimaryKey = true, IsDbGenerated = true)]
        public string RecordID
        {
            get;
            set;
        }
        [Column(CanBeNull = true)]
        public string NameRec
        {
            get;
            set;
        }
        [Column(CanBeNull = true)]
        public string BeneficiaryRec
        {
            get;
            set;
        }
        [Column(CanBeNull = true)]
        public string PriceRec
        {
            get;
            set;
        }
        [Column(CanBeNull = true)]
        public string DeadlineRec
        {
            get;
            set;
        }
        [Column(CanBeNull = true)]
        public string DescriptionRec
        {
            get;
            set;
        }
    }
}

これがデータ コンテキストです ( WpisyDataContext.cs)。

using System.Data.Linq;

namespace *************
{
    public class WpisyDataContext : DataContext
    {
        public WpisyDataContext(string connectionString)
            : base(connectionString)
        {
        }
        public Table<Wpis> Wpisy
        {
            get
            {
                return this.GetTable<Wpis>();
            }
        }
    }
}

これは接続文字列です:

public static string strConnectionString = @"Data Source=isostore:/DevDB.sdf";

皆さん、もう我慢できません。ありがとう。

4

1 に答える 1

0

を使用する場合はCreateDatabase()、.Netがデータベーステーブルをエンティティとして作成したかどうかを確認してください。EntityFrameworkは複数形の名前でテーブルを作成し、Entityは単数形の名前で作成されるためです。

作成したテーブル名が期待どおりかどうかを確認してください。

于 2013-01-02T21:15:52.560 に答える