Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Windows Phone и локальная БД - Windows Phone

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Windows Phone WinPhone+XNA загрузка текстуры http://www.cyberforum.ru/windows-phone-dev/thread1284779.html
Решил попробовать создать игру для винфона. Скачал SDK и XNA установил. Создал проект: Приложение Windows Phone на базе XAML и XNA. Загружаю текстуру и мне выдейот вот такое: Исключение типа...
Windows Phone Geolocation получение координат Ребят не могу разобраться как мне получить гео данные в виде цифер, точнее longitude lattitude http://www.cyberforum.ru/windows-phone-dev/thread1284064.html
Работа с файлами WP8.1 Windows Phone
Интересно получается... В MS VS 2013 запускаю проект (WP8.1 C#&XAML) - в качестве эмулятора реальный телефон с WP8.1. Приложение возвращает лист с полными путями к изображениям в PicturesLibrary в...
DirectX и C# на WP8.1 Windows Phone
Добрый день. Пишу приложение на C# под phone 8.1, и в него потребовалось добавить 3d модель. Решил использовать для этой цели managed directx. Но, насколько я знаю, майкрософт прекратил его...
Windows Phone API и с# - объясните как работать http://www.cyberforum.ru/windows-phone-dev/thread1283061.html
Я не могу понять как использовать возможности АПИ в приложении вин фон на c# Скажем на js все понятно, открываю документацию ясные примеры кода, а на си шарп не понимаю, хоть убей. Объясните на...
Windows Phone ItemClick у ListView Сперва использовал событие SelectionChanged, оно не удобно так как помечает нажатый айтем выбранным. Подписался на ItemClick предварительно включив опцию IsItemClickEnabled="True", но не могу взять... подробнее

Показать сообщение отдельно
A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 475
28.10.2014, 19:58
я скажу как понимаю. берем класс и обозначаем его атрибутом [Table](что то вроде паттерна актив рекорд). т.е. наш класс будет таблицей, а поля в нем соответственно полями таблицы [Column]. Там можно в атрибутах указывать доп. настройки типа(первичный, там не нулл и тд). потом надо создать новый класс у унаследовать от DataContext. И там запилить статический путь для БД(чтобы можно было в любой момент обратиться).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public class ToDoDataContext : DataContext
{
    // Specify the connection string as a static, used in main page and app.xaml.
    public static string DBConnectionString = "Data Source=isostore:/ToDo.sdf";
 
    // Pass the connection string to the base class.
    public ToDoDataContext(string connectionString)
        : base(connectionString)
    { }
 
    // Specify a single table for the to-do items.
    public Table<ToDoItem> ToDoItems;//Вот сдесь будет твой БД(инициализируешь класс при запуске приложухи.)
}
не забудь проверять каждый раз создан ли БД
C#
1
2
3
4
5
6
7
8
using (ToDoDataContext db = new ToDoDataContext(ToDoDataContext.DBConnectionString))
{
    if (db.DatabaseExists() == false)
    {
        //Create the database
        db.CreateDatabase();
    }
}
А для создания связей с внешними ключами более сложный код. Как здесь. Указываешь внешний ключь, а потом коллекцию запиливаещь для связей(т.к. их может быть много). Если присмотреться как ALTER TABLE ADD CONSTRAINT получается, тока под свой манер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
private string _ownerId;
    [Column(IsPrimaryKey = true, CanBeNull = false)]
    public string OWNER_ID
    {
        get { return _ownerId; } 
        set
        {
            if (value == OWNER_ID)
                return;
            RaisePropertyChanging("OWNER_ID");
            _ownerId = value;
            RaisePropertyChanged("OWNER_ID");
        }
    }
 
    private EntityRef<User> _ownerRef;
    [Association(Name = "FK_USER_ACCOUNTS", ThisKey = "OWNER_ID", OtherKey = "ID", Storage = "_ownerRef", IsForeignKey = true)]
    public User Owner { 
        get { return _ownerRef.Entity; }
        set 
        { 
            User previousValue = _ownerRef.Entity;
            if(previousValue==value)// && !_ownerRef.HasLoadedOrAssignedValue)
            {
                return;
            }
            if(previousValue!=null)
            {
                _ownerRef.Entity = null;
                previousValue.Accounts.Remove(this);
            }
            RaisePropertyChanging("Owner");
            _ownerRef.Entity = value;
            if(value!=null)
            {
                value.Accounts.Add(this);
                OWNER_ID = value.ID;
            }
            else
            {
                OWNER_ID = string.Empty;
            }
            RaisePropertyChanged("Owner");
        }
    }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru