Castle ActiveRecord 映射一个视图

Castle ActiveRecord mapping a view

您好,我正在使用 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 中映射视图? 提到了一个简单的主键,但这是什么意思?我该如何设置?或者有别的办法吗?

视图所基于的 table 有一个主键列,但是当我将其映射为主键时,它会抛出错误 Could not perform FindAll。当我打开它时,内部异常为空。什么都没有...

嘿德克,感谢您的回答这里是查看地图

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;

简答,我是个白痴

长答案数据库中的主键列是 Varchar2 类型,我将它设置为 int cos 查看数据它都是数字所以我假设(做一个屁股等等)它是数字而不看.事实并非如此。然后我将 class 属性从 int 更改为 string,这一切都非常有效。