Google Analytics İzleme

04 Şubat 2011

SQL Server CE - Compact Edition 3.5 sürümünü Asp.Net uygulamasında kullanma

Sql Server CE 3.5 sürümü Asp.net uygulamasında kullanmak isterseniz
{"SQL Server Compact is not intended for ASP.NET development."}
şeklinde hata vermektedir.
Bu sorunu aşmak için
Global.asax dosyasında Application_Start metoduna şu çağrımı eklemeniz gerekmektedir:
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true)

Asp.net uygulamasında .sdf uzantılı Sql Server CE Veritabanına ulaşmak için connection string'ine ya tam yolu yazmalısınız ya da DataDirectory tanımı kullanmalısınız. Relative yani bağıl path tanımı hata vermektedir.
Asp.net uygulamasında FirstSample.sdf veritabanı dosyasının App_Data olduğunu düşünürsek şu şekilde yazmalısınız:
"Data Source=|DataDirectory|\FirstSample.sdf;"

NHibernate configurasyon dosyasındaki tanım ise şöyle olmalıdır:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSqlCeDialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>
        <property name="connection.connection_string">Data Source=|DataDirectory|\FirstSample.sdf</property>

        <property name="show_sql">true</property>
    </session-factory>    
</hibernate-configuration>

System.Data.SqlServerCe.dll dosyasınında bin klasöründe olmalıdır.

Hiç yorum yok: