Castle ActiveRecord映射视图

时间:2016-02-19 14:28:55

标签: c# visual-studio-2012 nhibernate castle-activerecord

您好我正在使用VS2012 c#和Castle Active Record。

阅读本文后

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。什么都没有......

Hey 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;

1 个答案:

答案 0 :(得分:0)

简短的回答,我是个白痴。

长期回答数据库中的主键列是Varchar2类型,我将其设置为int cos,查看数据,这是所有数字,所以我假设(制作一个屁股和所有这些)它是数字而不看。它不是。然后我将class属性从int更改为string,它们就像魅力一样。