Mono compatibility
4 comments
-
Herman
commented
We tried using a DataObjects.NET data layer (compiled on windows with postsharp) on Mono/OS X and it failed to even connect to SQL Server.
Looks like NHibernate is ORM of choice.
Error
====Unhandled Exception: System.IO.IOException: Read failure ---> System.Net.Sockets.SocketException: Operation timed out.
at System.Net.Sockets.Socket.Receive (System.Byte[] buffer, Int32 offset, Int32 size, SocketFlags flags) [0x00000] in <filename unknown>:0
at System.Net.Sockets.NetworkStream.Read (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.TdsComm.Read (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0Unhandled Exception: Xtensive.Orm.StorageException: SQL error occured.
SQL error details 'Type: Unknown;'
Original message 'The object was used after being disposed.' ---> System.ObjectDisposedException: The object was used after being disposed.
at System.Net.Sockets.NetworkStream.CheckDisposed () [0x00000] in <filename unknown>:0
at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.TdsComm.SendPhysicalPacket (Boolean isLastSegment) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.TdsComm.SendPacket () [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds.ExecuteQuery (System.String sql, Int32 timeout, Boolean wantResults) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds80.Execute (System.String commandText, Mono.Data.Tds.TdsMetaParameterCollection parameters, Int32 timeout, Boolean wantResults) [0x00000] in <filename unknown>:0
at Mono.Data.Tds.Protocol.Tds.Execute (System.String sql) [0x00000] in <filename unknown>:0
at System.Data.SqlClient.SqlTransaction.Rollback (System.String transactionName) [0x00000] in <filename unknown>:0
at System.Data.SqlClient.SqlTransaction.Rollback () [0x00000] in <filename unknown>:0
at System.Data.SqlClient.SqlTransaction.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
at System.Data.Common.DbTransaction.Dispose () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Data.Common.DbTransaction:Dispose ()
at Xtensive.Sql.SqlConnection.Rollback () [0x00000] in <filename unknown>:0
at Xtensive.Orm.Providers.Sql.StorageDriver.RollbackTransaction (Xtensive.Orm.Session session, Xtensive.Sql.SqlConnection connection) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Xtensive.Orm.Providers.Sql.StorageDriver.RollbackTransaction (Xtensive.Orm.Session,Xtensive.Sql.SqlConnection) <0x000c3>
at Xtensive.Orm.Providers.Sql.SessionHandler.RollbackTransaction (Xtensive.Orm.Transaction) <0x00053>
at Xtensive.Orm.Session.Rollback (Xtensive.Orm.Transaction) <0x00047>
at Xtensive.Orm.Session.RollbackTransaction (Xtensive.Orm.Transaction) <0x000c7>
at Xtensive.Orm.Transaction.Rollback () <0x0007f>
at Xtensive.Orm.TransactionScope.Dispose () <0x0008f>
at Xtensive.Core.DisposableExtensions.DisposeSafely (System.IDisposable) <0x0001e>
at Xtensive.Orm.Building.Builders.DomainBuilder.BuildDomain (Xtensive.Orm.Configuration.DomainConfiguration,Xtensive.Orm.Building.Builders.DomainBuilderConfiguration) <0x0028f>
at Xtensive.Orm.Upgrade.UpgradingDomainBuilder.BuildStageDomain (Xtensive.Orm.Upgrade.UpgradeStage) <0x00137>
at Xtensive.Orm.Upgrade.UpgradingDomainBuilder.Build (Xtensive.Orm.Configuration.DomainConfiguration) <0x001bb>
at Xtensive.Orm.Domain.Build (Xtensive.Orm.Configuration.DomainConfiguration) <0x00013>
at BW.Cranewatch.UI.Desktop.OSX.DomainManager.CreateSqlServerDomain () <0x000bf>
at BW.Cranewatch.UI.Desktop.OSX.DomainManager..ctor () <0x0000b>
at BW.Cranewatch.UI.Desktop.OSX.DomainManager.get_Instance () <0x00083>
at BW.Cranewatch.UI.Desktop.OSX.CranewatchScope..ctor () <0x0000b>
at BW.Cranewatch.UI.Desktop.OSX.MainWindowController.ButtonPressed (MonoMac.AppKit.NSButton) <0x0002b>
at (wrapper dynamic-method) object.[BW.Cranewatch.UI.Desktop.OSX.MainWindowController.Void ButtonPressed(MonoMac.AppKit.NSButton)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.AppKit.NSButton) <0x00033>
at (wrapper native-to-managed) object.[BW.Cranewatch.UI.Desktop.OSX.MainWindowController.Void ButtonPressed(MonoMac.AppKit.NSButton)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.AppKit.NSButton) <0x000fb>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00017> -
Anonymous
commented
There is a lack of heavy-weight ORM's for MonoTouch, and this would fill in a vacuum for that platform that is desperately needed.
-
Herman
commented
Support for MonoTouch SQLite would be exceptional.
-
Sergey Yakunin commented
Nice feature but I don't use Mono!