2016-02-19 6 views
0

Привет, я использую VS2012 C# и активную запись замка.Замок ActiveRecord, отображающий вид

После прочтения этой

How to map a database view using ActiveRecord?

И это

mapping view using castle activerecord, exception on primary key

И это

Castle ActiveRecord Error With View: NHibernate.PropertyNotFoundException for generated key

Я до сих пор понятия не имею, как решить ту же проблему, что и каждый из этих вопросов. Без добавления составного ключа, как я могу сопоставить представление в Castle ActiveRecords? Существует упоминание простого первичного ключа, но что это значит? Как мне это настроить? Или есть другой способ?

Таблица, на которой основана точка зрения, имеет столбец первичного ключа, но когда я сопоставляю ее как первичный ключ, она выдает ошибку. Не удалось выполнить FindAll. Когда я его открываю, внутреннее исключение равно null. Там нет ничего ...

Эй Dirk спасибо за ответ здесь вид карты

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Castle.ActiveRecord; 
using Castle.ActiveRecord.Queries; 

namespace Data_Objects.CAR.Klase 
{ 
    [ActiveRecord("OSNOVNASREDSTVA")] 
    public class OsnovnaSredstva : ActiveRecordBase<OsnovnaSredstva> 
    { 
     private int _ossr_sifra; 
     private string _ossr_naziv; 
     private string _ossr_opis; 
     private int _ossr_stanje; 
     private int _ossr_org; 
     private int _ossr_lok; 
     private DateTime _ossr_odDatuma; 



     [PrimaryKey(PrimaryKeyType.Native, Column = "SIFRA")] 
     public int Ossr_Sifra 
     { 
      get { return _ossr_sifra; } 
      set { _ossr_sifra = value; } 
     } 


    } 
} 

У меня есть другие атрибуты, которые я удаленные для тестирования момента, чтобы убедиться, вопрос с атрибутом первичного ключа (это).

Не уверен, что вы имеете в виду вид структуры, но вот SQL

CREATE VIEW OSNOVNASREDSTVA 
AS select "SIFRA","NAZIV","OPIS","STANJE","REVALNABAVNACIJENA","NABAVNACIJENA","AMORTIZACIJA","DATUMNABAVE","SMJENA","STOPAAMORTIZACIJE","ORGANIZACIJA","POCETAKAMORTIZACIJE","ZADNJAAMORTIZACIJA","DEVNABAVNACIJENA","DEVAMORTIZACIJA","ODDATUMA","PREDMET","KONTOZALIHE","KONTOAMORTIZACIJE","GRUPAAMORTIZACIJE","KADAR","LOKACIJA","DOBAVLJAC","PROIZVODJAC","VALUTA","DODATUMA","MJESECI","ID","EAN","IZNOSPROBNEAMORTIZACIJE","DEVIZNOSPROBNEAMORTIZACIJE","DEVIZNOSPROBNEDORAZDOBLJA","IZNOSPROBNEDORAZDOBLJA","DEVREVALNABAVNACIJENA","PRIPREMA","BROJRACUNA","CREATED_BY","MODIFIED_BY","DATE_CREATED","DATE_MODIFIED","BILANCA","PORESKAGRUPAAM","REGISTARSKI_BROJ","MODEL","OSTALO","KOPIRANJE","BROJ_NALOGA","KUF_ID","AMORT_TEKUCA","AMORT_PRIJE_TEK","ZADNJASIFRA" from IBS.os_osnovnasredstva; 
+0

Можете ли вы предоставить структуру своего вида и сопоставление, которое вы пробовали? Для NHibernate/AR не имеет большого значения, если вы сопоставляете представление или таблицу. –

ответ

0

Короткий ответ, я был идиотом.

Длительный ответ в столбце первичного ключа в базе данных был типа Varchar2, и я установил его как int cos, глядя на данные, это все числа, поэтому я принял (делая задницу и все такое), что это был номер, не глядя. Это не так. Затем я изменил атрибут класса от int до строки, и все это работало как шарм.

 Смежные вопросы

  • Нет связанных вопросов^_^