Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQtoSQLite проблема / 10 сообщений из 10, страница 1 из 1
29.12.2010, 14:08
    #37040822
Mr_GOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Столкнулся с необходимостью использовать максимально локальную базу данных. Выбор пал на SQLite. Программа разрабатывается на C#. Пишу в VS 2010 + SQLite 1.0.66.0 + LightSpeedExpress. Вся проблема в том что у меня не получается использовать LINQ, хотя исходя из документации на оф. сайте все правильно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
using System;
using System.Linq;

namespace GOT.DBinterface
{
	public class DataBaseEngine
	{

		public void GetAllLakes()
		{
			GOT.DBinterface.DataBaseModelUnitOfWork model = new DataBaseModelUnitOfWork();

			var lakes = from p in model.Lakes select p;

			foreach (Lake lake in lakes)
				Console.WriteLine(lake.Name);
		}
	}
}
Вот пример кода который не работает. Еще при создании объекта model возникает ошибка "Перечисление не дало результатов"

Вот код, который генерирует LightSpeed для работы с базой:
Код: plaintext
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
using System;

using Mindscape.LightSpeed;
using Mindscape.LightSpeed.Validation;
using Mindscape.LightSpeed.Linq;

namespace GOT.DBinterface
{
  [Serializable]
  [System.CodeDom.Compiler.GeneratedCode("LightSpeedModelGenerator", "1.0.0.0")]
  [System.ComponentModel.DataObject]
  public partial class Lake : Entity<int>
  {
    #region Fields
  
    private int _id;
    [ValidateLength(0, 50)]
    private string _name;
    [ValidateLength(0, 50)]
    private string _country;

    #endregion
    
    #region Field attribute and view names
    
    /// <summary>Identifies the Id entity attribute.</summary>
    public const string IdField = "Id";
    /// <summary>Identifies the Name entity attribute.</summary>
    public const string NameField = "Name";
    /// <summary>Identifies the Country entity attribute.</summary>
    public const string CountryField = "Country";

    #endregion
    
    #region Properties

    public int Id
    {
      get { return Get(ref _id, "Id"); }
      set { Set(ref _id, value, "Id"); }
    }

    public string Name
    {
      get { return Get(ref _name, "Name"); }
      set { Set(ref _name, value, "Name"); }
    }

    public string Country
    {
      get { return Get(ref _country, "Country"); }
      set { Set(ref _country, value, "Country"); }
    }

    #endregion
  }

  /// <summary>
  /// Provides a strong-typed unit of work for working with the DataBaseModel model.
  /// </summary>
  [System.CodeDom.Compiler.GeneratedCode("LightSpeedModelGenerator", "1.0.0.0")]
  public partial class DataBaseModelUnitOfWork : Mindscape.LightSpeed.UnitOfWork
  {

    public System.Linq.IQueryable<Lake> Lakes
    {
      get { return this.Query<Lake>(); }
    }
    
  }

}

Почему возникает такая проблема и что я не так сделал?
Заранее спасибо!
...
Рейтинг: 0 / 0
29.12.2010, 18:02
    #37041470
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Mr_GODПочему возникает такая проблема и что я не так сделал?
Пишешь в VS 2010 + SQLite 1.0.66.0 + LightSpeedExpress

Если хочешь C# с SQLite, то и пиши на C# c SQLite.
Возьми это: http://sqlite.phxsoftware.com/ работай напрямую с базой и не будет проблем.
...
Рейтинг: 0 / 0
30.12.2010, 11:05
    #37042174
Mr_GOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
White OwlMr_GODПочему возникает такая проблема и что я не так сделал?
Пишешь в VS 2010 + SQLite 1.0.66.0 + LightSpeedExpress

Если хочешь C# с SQLite, то и пиши на C# c SQLite.

Я не совсем понял чем в Visual Studio 2010 не C#?
...
Рейтинг: 0 / 0
30.12.2010, 11:10
    #37042183
Mr_GOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Как работать с этой базой как с обычным SQL Server я знаю. Но меня интересует именно LINQ.
...
Рейтинг: 0 / 0
30.12.2010, 12:31
    #37042339
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Не думаю, что тут найдутся спецы по теме ...
Модератор: Перенести ваше сообщение в ADO.NET форум ?
...
Рейтинг: 0 / 0
30.12.2010, 18:17
    #37043031
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Mr_GODWhite Owlпропущено...

Пишешь в VS 2010 + SQLite 1.0.66.0 + LightSpeedExpress

Если хочешь C# с SQLite, то и пиши на C# c SQLite.

Я не совсем понял чем в Visual Studio 2010 не C#?Проблема не в VS, а в LINQ и LightExpress. Смотрел я на эти "интерфейсы" и пришел к убеждению что использовать их себе дороже.
Да и вообще, чем меньше врапперов, тем лучше.

Модератор: Тема перенесена из форума "SQLite".
...
Рейтинг: 0 / 0
01.01.2011, 02:36
    #37043973
NoName_ML
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
все это можно сделать в VS2008 SP1 в Entity Framework
На, пользуйся на здоровье и считай это моим новогодним подарком тебе, в архиве есть пример SQLite базы данных с которой проект взаимодействует. Написан он был на быструю руку и под пьяный глаз в самый разгар празднования нового года так что служит исключительно для ознакомительных целей
...
Рейтинг: 0 / 0
01.01.2011, 02:42
    #37043977
NoName_ML
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
ссылка на депозит http://depositfiles.com/files/5iuow3jd8 на случай если файл не прикрепился к предыдущему сообщению (как я уже упоминал пишу в процессе празднования так что может и не прикрепится)
Всех с новым годом!!!!!
...
Рейтинг: 0 / 0
01.01.2011, 15:14
    #37044041
Mr_GOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Спасибо большое. Разобрался. Удачи всем в новом году
...
Рейтинг: 0 / 0
07.01.2011, 12:28
    #37048323
Mr_GOD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQtoSQLite проблема
Как оказалось предложенный способ оказался сильно зависим от множества системных и не системных библиотек, и программа просто не работала на компьютере где не были установлены эти библиотеки, да и скопировать их локально не представлялось возможным. Поэтому пришлось все же разобраться с LigthSpeed.
Вся соль была вот в чем

Код: plaintext
1.
2.
3.
4.
5.
6.
_unitOfWork = (new LightSpeedContext()
		{
			ConnectionString = _connectionString,
			DataProvider = DataProvider.SQLite3,
			IdentityMethod = IdentityMethod.IdentityColumn
		}).CreateUnitOfWork();

потом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public IEnumerable<Lake> lakes
	{
		get
		{
			return _unitOfWork.Query<Lake>();	
		}
	}

А вот так выглядит непосредственно запрос к базе
Код: plaintext
1.
2.
3.
4.
public IEnumerable<Lake> GetLakes(Func<Lake, bool> Condition)
{
	return lakes.Where(Condition);
}

Вот так добавление элемента
Код: plaintext
1.
2.
3.
4.
5.
public void AddLake(Lake lake)
{
	_unitOfWork.Add(lake);
	_unitOfWork.SaveChanges();
}

А вот так удаление
Код: plaintext
1.
2.
3.
4.
5.
public void DeleteLake(Lake lake)
{
	_unitOfWork.Remove(lake);
	_unitOfWork.SaveChanges();
}

В общем, может кому пригодится)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQtoSQLite проблема / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]