powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQtoSQLite проблема
10 сообщений из 10, страница 1 из 1
LINQtoSQLite проблема
    #37040822
Mr_GOD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с необходимостью использовать максимально локальную базу данных. Выбор пал на 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
LINQtoSQLite проблема
    #37041470
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_GODПочему возникает такая проблема и что я не так сделал?
Пишешь в VS 2010 + SQLite 1.0.66.0 + LightSpeedExpress

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

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

Я не совсем понял чем в Visual Studio 2010 не C#?
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37042183
Mr_GOD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как работать с этой базой как с обычным SQL Server я знаю. Но меня интересует именно LINQ.
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37042339
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думаю, что тут найдутся спецы по теме ...
Модератор: Перенести ваше сообщение в ADO.NET форум ?
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37043031
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
LINQtoSQLite проблема
    #37043973
NoName_ML
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все это можно сделать в VS2008 SP1 в Entity Framework
На, пользуйся на здоровье и считай это моим новогодним подарком тебе, в архиве есть пример SQLite базы данных с которой проект взаимодействует. Написан он был на быструю руку и под пьяный глаз в самый разгар празднования нового года так что служит исключительно для ознакомительных целей
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37043977
NoName_ML
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ссылка на депозит http://depositfiles.com/files/5iuow3jd8 на случай если файл не прикрепился к предыдущему сообщению (как я уже упоминал пишу в процессе празднования так что может и не прикрепится)
Всех с новым годом!!!!!
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37044041
Mr_GOD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое. Разобрался. Удачи всем в новом году
...
Рейтинг: 0 / 0
LINQtoSQLite проблема
    #37048323
Mr_GOD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оказалось предложенный способ оказался сильно зависим от множества системных и не системных библиотек, и программа просто не работала на компьютере где не были установлены эти библиотеки, да и скопировать их локально не представлялось возможным. Поэтому пришлось все же разобраться с 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
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQtoSQLite проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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