0

私は C# の初心者プログラマーなので、私の質問の解決策は簡単かもしれないと思いますが、何日も探した後、自分に合ったものは見つかりませんでした。

SQL CE で作成された DB を含む WP7 アプリがあります。

クラス PorniBD.cs

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq.Mapping;

namespace PhoneClassLibrary1
{
    [Table(Name = "Papilleros")]
    public class PorniBD
    {
        [Column(IsPrimaryKey = true, IsDbGenerated = true)]
        public int Id { get; set; }
        [Column(CanBeNull = false)]
        public String Nombre { get; set; }
        [Column(CanBeNull = false)]
        public String FechaNac { get; set; }
        [Column(CanBeNull = false)]
        public Boolean Activo { get; set; }
        [Column(CanBeNull = false)]
        public String Icono { get; set; }
    }
}

クラス PorniContext.cs

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Data.Linq.Mapping;
using System.Data.Linq;

namespace PhoneClassLibrary1
{
    public class PorniContext : DataContext
    {
        public PorniContext(string connectionString) : base(connectionString)
        {
            //
        }

        public Table<PorniBD> Papilleros
        {
            get
            {
                return this.GetTable<PorniBD>();
            }
        }
    }
}

私のアプリには、このページで学んだように、別のプロジェクトで作成されたバックグラウンド エージェントがあります:リンク

ここで、バックグラウンド エージェントからアプリ DB を読み取る必要があります。このクラスには、次の OnInvoke void が含まれています。

protected override void OnInvoke(ScheduledTask task)
        {
            List<PorniBD> listapapilleros = new List<PorniBD>();
            using (PorniContext basedatos = new PorniContext("Data Source='isostore:/basedatos.sdf'"))
            {
                listapornis = basedatos.Papilleros.ToList();
            }

            // Launch a toast to show that the agent is running.
            // The toast will not be shown if the foreground application is running.

            ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(10));
            NotifyComplete();
        }

しかし、分離されたDataSourceはプロジェクトごとに異なるため(私は思う)、それは不可能であり、さらに何かを修正する必要があると思います...

助けてくれてありがとう、そして私の英語レベルが私の説明を理解するのを少し難しくしているなら申し訳ありません...

4

1 に答える 1

1

「Windows Phone クラス ライブラリ」タイプの 3 つ目のプロジェクトを作成するだけです。データベース コードをその 3 番目のプロジェクトに移動し、メイン プロジェクトとバックグラウンド エージェント プロジェクトの両方から参照します。

于 2013-08-28T08:09:43.563 に答える