Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NH-3807 - Support for .NET Core 2.0 #954

Closed
nhibernate-bot opened this issue Oct 12, 2017 · 2 comments
Closed

NH-3807 - Support for .NET Core 2.0 #954

nhibernate-bot opened this issue Oct 12, 2017 · 2 comments

Comments

@nhibernate-bot
Copy link
Collaborator

nhibernate-bot commented Oct 12, 2017

chris_x created an issue — 7th July 2015, 9:52:17:

I'm pretty sure this has already been discussed internally, but I can't find it anywhere on JIRA.

I think it would make a lot of sense if NHibernate were to support .NET Core as target platform in the foreseeable future to enable cross-platform development. I understand that this might be a huge task involving even more aggressive cleanup of legacy code and possibly (probably) some breaking changes, but would go a long way to keep NH relevant. EF 7 will support it (duh), which will definitely give it an edge over NH...

I for one am certainly considering making the switch over to EF 7 for new projects just for that reason, even though NH is still much more powerful and flexible (and I have experience with it).


Johannes Rauber added a comment — 27th February 2016, 19:50:04:

Current dependencies are Antlr3 and Remption.Linq or did i miss some?
PCL Profiles in the current nuget Packages:

Antlr (Antlr3.Runtime.3.5.0.3-dev)

portable-net4sl5netcore45wpa81wp8MonoAndroid1MonoTouch1
portable-net45netcore45wpa81wp8MonoAndroid1MonoTouch1

Remotion.Linq 1.15.15

portable-net45wpa81wp80win

For Remotion.Linq the following has to be considered:
win = win8 = netcore45 (https://docs.nuget.org/create/targetframeworks)

Looking at the possible profiles that could be used due to these dependencies and those that correspond to a netstandard the list reduces to these.

portable-net45netcore45 (Profile7) -> netstandard1.1/dotnet5.2
portable-net45
netcore45wp8 (Profile78) -> netstandard1.0/dotnet5.1
portable-net45
netcore45wpa81 (Profile111) -> netstandard1.1/dotnet5.2
portable-net45
netcore45wpa81wp8 (Profile259) -> netstandard1.0/dotnet5.1

PCL Profiles : http://embed.plnkr.co/03ck2dCtnJogBKHJ9EjY


Alexander Zaytsev added a comment — 27th February 2016, 21:32:29:

<~jrauber> We will update relinq to 2.0 by the version 5 of NHibernate. But anyway these packages are inlined, with some plans to make relinq external via nuget.


Johannes Rauber added a comment — 28th February 2016, 1:17:53:

If i understood it right the PCL Profiles above are compatible, so going down this route and creating an "old" PCL-Project for an nhibernate port would have been an option. As the Summary shows that the netcore45 and wpa81 would impose some higher degree of needed changes the direct move seems to be the better option. As the dependencies are already targeting compatible profiles both are not blocking the port, so a switch to relinq 2.0 is not mandatory. Whats your point of view?

Portability Summary
.NET CORE,Version=v5.0: 86.28 % (netstandard)
ASP.NET 5,Version=v1.0 : 86.28 % (netstandard)
.NET CORE (Cross-platform),Version=v5.0: 86.09 % (netstandard)
Windows,Version=v8.0: 75.05 % (netcore45)
Windows Phone,Version=v8.1: 74.81 % (wpa81)

Analyzed with https://github.com/Microsoft/dotnet-apiport


Alexander Zaytsev added a comment — 28th February 2016, 4:22:22:

The problem with PCL that it does not support System.Data


Johannes Rauber added a comment — 28th February 2016, 13:14:06:

Target type Target member Assembly .NET CORE Recommended changes
T:System.Transactions.Transaction T:System.Transactions.Transaction NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.add_TransactionCompleted(System.Transactions.TransactionCompletedEventHandler) NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.Clone NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.Dispose NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.EnlistVolatile(System.Transactions.IEnlistmentNotification,System.Transactions.EnlistmentOptions) NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.get_Current NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.get_IsolationLevel NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.get_TransactionInformation NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.op_Equality(System.Transactions.Transaction,System.Transactions.Transaction) NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.op_Inequality(System.Transactions.Transaction,System.Transactions.Transaction) NHibernate Not supported
T:System.Transactions.Transaction M:System.Transactions.Transaction.remove_TransactionCompleted(System.Transactions.TransactionCompletedEventHandler) NHibernate Not supported
T:System.Xml.XmlTextReader T:System.Xml.XmlTextReader NHibernate Not supported Use XmlReader.Create(System.IO.Stream).
T:System.Xml.XmlTextReader M:System.Xml.XmlTextReader.#ctor(System.IO.Stream) NHibernate Not supported Use XmlReader.Create(System.IO.Stream).
T:System.Xml.XmlTextReader M:System.Xml.XmlTextReader.#ctor(System.String) NHibernate Not supported Use XmlReader.Create(System.IO.Stream).
T:System.Xml.XmlTextReader M:System.Xml.XmlTextReader.#ctor(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext) NHibernate Not supported Use XmlReader.Create(System.IO.Stream).
T:System.CodeDom.Compiler.CompilerResults T:System.CodeDom.Compiler.CompilerResults NHibernate Not supported
T:System.CodeDom.Compiler.CompilerResults M:System.CodeDom.Compiler.CompilerResults.get_CompiledAssembly NHibernate Not supported
T:System.CodeDom.Compiler.CompilerResults M:System.CodeDom.Compiler.CompilerResults.get_Errors NHibernate Not supported
T:System.Runtime.Serialization.SerializationInfo T:System.Runtime.Serialization.SerializationInfo NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Boolean) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Int32) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Int64) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Object) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Object,System.Type) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.GetBoolean(System.String) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.GetInt32(System.String) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.GetInt64(System.String) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.GetString(System.String) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.GetValue(System.String,System.Type) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.Runtime.Serialization.SerializationInfo M:System.Runtime.Serialization.SerializationInfo.SetType(System.Type) NHibernate Not supported Either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
T:System.ICloneable T:System.ICloneable NHibernate Not supported Remove usage.
T:System.ICloneable M:System.ICloneable.Clone NHibernate Not supported Remove usage.
T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter NHibernate Not supported
T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.#ctor NHibernate Not supported
T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream) NHibernate Not supported
T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(System.IO.Stream,System.Object) NHibernate Not supported
T:System.MarshalByRefObject T:System.MarshalByRefObject NHibernate Not supported Remove usage.
T:System.Xml.Schema.ValidationEventArgs T:System.Xml.Schema.ValidationEventArgs NHibernate Not supported
T:System.Xml.Schema.ValidationEventArgs M:System.Xml.Schema.ValidationEventArgs.get_Exception NHibernate Not supported
T:System.Xml.Schema.ValidationEventArgs M:System.Xml.Schema.ValidationEventArgs.get_Message NHibernate Not supported
T:System.Data.IDbCommand T:System.Data.IDbCommand NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.Cancel NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.CreateParameter NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.ExecuteNonQuery NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.ExecuteReader NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.ExecuteScalar NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.get_CommandText NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.get_Connection NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.get_Parameters NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.get_Transaction NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.Prepare NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.set_CommandText(System.String) NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.set_CommandTimeout(System.Int32) NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.set_CommandType(System.Data.CommandType) NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.set_Connection(System.Data.IDbConnection) NHibernate Not supported
T:System.Data.IDbCommand M:System.Data.IDbCommand.set_Transaction(System.Data.IDbTransaction) NHibernate Not supported
T:System.Data.IDataRecord T:System.Data.IDataRecord NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.get_FieldCount NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.get_Item(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.get_Item(System.String) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetBoolean(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetByte(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetChar(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetData(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetDataTypeName(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetDateTime(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetDecimal(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetDouble(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetFieldType(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetFloat(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetGuid(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetInt16(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetInt32(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetInt64(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetName(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetOrdinal(System.String) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetString(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetValue(System.Int32) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.GetValues(System.Object[]) NHibernate Not supported
T:System.Data.IDataRecord M:System.Data.IDataRecord.IsDBNull(System.Int32) NHibernate Not supported
T:System.Data.InternalDataCollectionBase T:System.Data.InternalDataCollectionBase NHibernate Not supported
T:System.Data.InternalDataCollectionBase M:System.Data.InternalDataCollectionBase.get_Count NHibernate Not supported
T:System.Data.InternalDataCollectionBase M:System.Data.InternalDataCollectionBase.GetEnumerator NHibernate Not supported
T:System.Data.IDataParameter T:System.Data.IDataParameter NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.get_DbType NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.get_ParameterName NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.get_Value NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.set_DbType(System.Data.DbType) NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.set_Direction(System.Data.ParameterDirection) NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.set_ParameterName(System.String) NHibernate Not supported
T:System.Data.IDataParameter M:System.Data.IDataParameter.set_Value(System.Object) NHibernate Not supported
T:System.AppDomain T:System.AppDomain NHibernate Not supported Remove usage.
T:System.AppDomain M:System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess) NHibernate Not supported Remove usage.
T:System.AppDomain M:System.AppDomain.get_BaseDirectory NHibernate Not supported System.AppContext.BaseDirectory.
T:System.AppDomain M:System.AppDomain.get_CurrentDomain NHibernate Not supported Remove usage.
T:System.AppDomain M:System.AppDomain.get_RelativeSearchPath NHibernate Not supported Remove usage.
T:System.AppDomain M:System.AppDomain.GetAssemblies NHibernate Not supported Remove usage.
T:System.Data.IDbDataParameter T:System.Data.IDbDataParameter NHibernate Not supported
T:System.Data.IDbDataParameter M:System.Data.IDbDataParameter.get_Size NHibernate Not supported
T:System.Data.IDbDataParameter M:System.Data.IDbDataParameter.set_Precision(System.Byte) NHibernate Not supported
T:System.Data.IDbDataParameter M:System.Data.IDbDataParameter.set_Scale(System.Byte) NHibernate Not supported
T:System.Data.IDbDataParameter M:System.Data.IDbDataParameter.set_Size(System.Int32) NHibernate Not supported
T:System.Data.IDbConnection T:System.Data.IDbConnection NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.BeginTransaction NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.BeginTransaction(System.Data.IsolationLevel) NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.Close NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.CreateCommand NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.get_State NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.Open NHibernate Not supported
T:System.Data.IDbConnection M:System.Data.IDbConnection.set_ConnectionString(System.String) NHibernate Not supported
T:System.Data.DataRow T:System.Data.DataRow NHibernate Not supported
T:System.Data.DataRow M:System.Data.DataRow.get_Item(System.String) NHibernate Not supported
T:System.Data.DataRow M:System.Data.DataRow.get_Table NHibernate Not supported
T:System.Transactions.PreparingEnlistment T:System.Transactions.PreparingEnlistment NHibernate Not supported
T:System.Transactions.PreparingEnlistment M:System.Transactions.PreparingEnlistment.ForceRollback(System.Exception) NHibernate Not supported
T:System.Transactions.PreparingEnlistment M:System.Transactions.PreparingEnlistment.Prepared NHibernate Not supported
T:System.Data.DataTable T:System.Data.DataTable NHibernate Not supported
T:System.Data.DataTable M:System.Data.DataTable.get_Columns NHibernate Not supported
T:System.Data.DataTable M:System.Data.DataTable.get_Rows NHibernate Not supported
T:System.Data.DataTable M:System.Data.DataTable.set_Locale(System.Globalization.CultureInfo) NHibernate Not supported
T:System.Transactions.TransactionInformation T:System.Transactions.TransactionInformation NHibernate Not supported
T:System.Transactions.TransactionInformation M:System.Transactions.TransactionInformation.get_Status NHibernate Not supported
T:System.Xml.Schema.ValidationEventHandler T:System.Xml.Schema.ValidationEventHandler NHibernate Not supported
T:System.Xml.Schema.ValidationEventHandler M:System.Xml.Schema.ValidationEventHandler.#ctor(System.Object,System.IntPtr) NHibernate Not supported
T:System.Configuration.ConnectionStringSettings T:System.Configuration.ConnectionStringSettings NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Configuration.ConnectionStringSettings M:System.Configuration.ConnectionStringSettings.get_ConnectionString NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Runtime.Serialization.FormatterConverter T:System.Runtime.Serialization.FormatterConverter NHibernate Not supported
T:System.Runtime.Serialization.FormatterConverter M:System.Runtime.Serialization.FormatterConverter.#ctor NHibernate Not supported
T:System.Runtime.Serialization.FormatterConverter M:System.Runtime.Serialization.FormatterConverter.ToString(System.Object) NHibernate Not supported
T:System.Transactions.TransactionScope T:System.Transactions.TransactionScope NHibernate Not supported
T:System.Transactions.TransactionScope M:System.Transactions.TransactionScope.#ctor(System.Transactions.Transaction) NHibernate Not supported
T:System.Transactions.TransactionScope M:System.Transactions.TransactionScope.#ctor(System.Transactions.TransactionScopeOption) NHibernate Not supported
T:System.Transactions.TransactionScope M:System.Transactions.TransactionScope.Complete NHibernate Not supported
T:System.Data.Common.DbMetaDataCollectionNames T:System.Data.Common.DbMetaDataCollectionNames NHibernate Not supported
T:System.Data.Common.DbMetaDataCollectionNames F:System.Data.Common.DbMetaDataCollectionNames.ReservedWords NHibernate Not supported
T:System.Data.OleDb.OleDbConnection T:System.Data.OleDb.OleDbConnection NHibernate Not supported
T:System.Data.OleDb.OleDbConnection M:System.Data.OleDb.OleDbConnection.#ctor NHibernate Not supported
T:System.Security.SecurityRulesAttribute T:System.Security.SecurityRulesAttribute NHibernate Not supported Remove usage.
T:System.Security.SecurityRulesAttribute M:System.Security.SecurityRulesAttribute.#ctor(System.Security.SecurityRuleSet) NHibernate Not supported Remove usage.
T:System.Data.IDbTransaction T:System.Data.IDbTransaction NHibernate Not supported
T:System.Data.IDbTransaction M:System.Data.IDbTransaction.Commit NHibernate Not supported
T:System.Data.IDbTransaction M:System.Data.IDbTransaction.get_Connection NHibernate Not supported
T:System.Data.IDbTransaction M:System.Data.IDbTransaction.get_IsolationLevel NHibernate Not supported
T:System.Data.IDbTransaction M:System.Data.IDbTransaction.Rollback NHibernate Not supported
T:System.Security.Permissions.ReflectionPermission T:System.Security.Permissions.ReflectionPermission NHibernate Not supported
T:System.Security.Permissions.ReflectionPermission M:System.Security.Permissions.ReflectionPermission.#ctor(System.Security.Permissions.ReflectionPermissionFlag) NHibernate Not supported
T:Microsoft.CSharp.CSharpCodeProvider T:Microsoft.CSharp.CSharpCodeProvider NHibernate Not supported
T:Microsoft.CSharp.CSharpCodeProvider M:Microsoft.CSharp.CSharpCodeProvider.#ctor NHibernate Not supported
T:System.Data.DataColumnCollection T:System.Data.DataColumnCollection NHibernate Not supported
T:System.Data.DataColumnCollection M:System.Data.DataColumnCollection.Contains(System.String) NHibernate Not supported
T:System.CodeDom.Compiler.CompilerErrorCollection T:System.CodeDom.Compiler.CompilerErrorCollection NHibernate Not supported
T:System.CodeDom.Compiler.CompilerErrorCollection M:System.CodeDom.Compiler.CompilerErrorCollection.get_HasErrors NHibernate Not supported
T:System.CodeDom.Compiler.CompilerErrorCollection M:System.CodeDom.Compiler.CompilerErrorCollection.get_Item(System.Int32) NHibernate Not supported
T:System.Data.IDataReader T:System.Data.IDataReader NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.Close NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.get_Depth NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.get_IsClosed NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.get_RecordsAffected NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.GetSchemaTable NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.NextResult NHibernate Not supported
T:System.Data.IDataReader M:System.Data.IDataReader.Read NHibernate Not supported
T:System.Reflection.Binder T:System.Reflection.Binder NHibernate Not supported Use an overload that does not take a Binder.
T:System.Transactions.IEnlistmentNotification T:System.Transactions.IEnlistmentNotification NHibernate Not supported
T:System.Transactions.IEnlistmentNotification M:System.Transactions.IEnlistmentNotification.Commit(System.Transactions.Enlistment) NHibernate Not supported
T:System.Transactions.IEnlistmentNotification M:System.Transactions.IEnlistmentNotification.InDoubt(System.Transactions.Enlistment) NHibernate Not supported
T:System.Transactions.IEnlistmentNotification M:System.Transactions.IEnlistmentNotification.Prepare(System.Transactions.PreparingEnlistment) NHibernate Not supported
T:System.Transactions.IEnlistmentNotification M:System.Transactions.IEnlistmentNotification.Rollback(System.Transactions.Enlistment) NHibernate Not supported
T:System.Data.DataRowCollection T:System.Data.DataRowCollection NHibernate Not supported
T:System.Data.IDataParameterCollection T:System.Data.IDataParameterCollection NHibernate Not supported
T:System.Data.IDataParameterCollection M:System.Data.IDataParameterCollection.get_Item(System.String) NHibernate Not supported
T:System.Data.IDataParameterCollection M:System.Data.IDataParameterCollection.RemoveAt(System.String) NHibernate Not supported
T:System.Configuration.ConfigurationManager T:System.Configuration.ConfigurationManager NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Configuration.ConfigurationManager M:System.Configuration.ConfigurationManager.get_AppSettings NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Configuration.ConfigurationManager M:System.Configuration.ConfigurationManager.get_ConnectionStrings NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Configuration.ConfigurationManager M:System.Configuration.ConfigurationManager.GetSection(System.String) NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.CodeDom.Compiler.CompilerError T:System.CodeDom.Compiler.CompilerError NHibernate Not supported
T:System.CodeDom.Compiler.CompilerError M:System.CodeDom.Compiler.CompilerError.get_Column NHibernate Not supported
T:System.CodeDom.Compiler.CompilerError M:System.CodeDom.Compiler.CompilerError.get_ErrorText NHibernate Not supported
T:System.CodeDom.Compiler.CompilerError M:System.CodeDom.Compiler.CompilerError.get_Line NHibernate Not supported
T:System.SerializableAttribute T:System.SerializableAttribute NHibernate Not supported Remove usage.
T:System.Runtime.Remoting.Messaging.CallContext T:System.Runtime.Remoting.Messaging.CallContext NHibernate Not supported Consider using System.Threading.AsyncLocal
T:System.Runtime.Remoting.Messaging.CallContext M:System.Runtime.Remoting.Messaging.CallContext.GetData(System.String) NHibernate Not supported Consider using System.Threading.AsyncLocal
T:System.Runtime.Remoting.Messaging.CallContext M:System.Runtime.Remoting.Messaging.CallContext.SetData(System.String,System.Object) NHibernate Not supported Consider using System.Threading.AsyncLocal
T:System.Transactions.Enlistment T:System.Transactions.Enlistment NHibernate Not supported
T:System.Transactions.Enlistment M:System.Transactions.Enlistment.Done NHibernate Not supported
T:System.Security.SecurityRuleSet T:System.Security.SecurityRuleSet NHibernate Not supported Remove usage.
T:System.Data.OleDb.OleDbCommand T:System.Data.OleDb.OleDbCommand NHibernate Not supported
T:System.Data.OleDb.OleDbCommand M:System.Data.OleDb.OleDbCommand.#ctor NHibernate Not supported
T:System.Xml.Schema.XmlSchemaException T:System.Xml.Schema.XmlSchemaException NHibernate Not supported
T:System.Xml.Schema.XmlSchemaException M:System.Xml.Schema.XmlSchemaException.get_LineNumber NHibernate Not supported
T:System.Xml.Schema.XmlSchemaException M:System.Xml.Schema.XmlSchemaException.get_LinePosition NHibernate Not supported
T:System.Security.IPermission T:System.Security.IPermission NHibernate Not supported
T:System.Security.SecurityManager T:System.Security.SecurityManager NHibernate Not supported
T:System.Security.SecurityManager M:System.Security.SecurityManager.IsGranted(System.Security.IPermission) NHibernate Not supported
T:System.Transactions.EnlistmentOptions T:System.Transactions.EnlistmentOptions NHibernate Not supported
T:System.Runtime.Serialization.IObjectReference T:System.Runtime.Serialization.IObjectReference NHibernate Not supported
T:System.Runtime.Serialization.IObjectReference M:System.Runtime.Serialization.IObjectReference.GetRealObject(System.Runtime.Serialization.StreamingContext) NHibernate Not supported

Johannes Rauber added a comment — 28th February 2016, 13:15:03:

Target type Target member Assembly .NET CORE Recommended changes
T:System.Transactions.IsolationLevel T:System.Transactions.IsolationLevel NHibernate Not supported
T:System.ApplicationException T:System.ApplicationException NHibernate Not supported Use other exception types.
T:System.ApplicationException M:System.ApplicationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported Use other exception types.
T:System.ApplicationException M:System.ApplicationException.#ctor(System.String) NHibernate Not supported Use other exception types.
T:System.ApplicationException M:System.ApplicationException.#ctor(System.String,System.Exception) NHibernate Not supported Use other exception types.
T:System.Security.Permissions.ReflectionPermissionFlag T:System.Security.Permissions.ReflectionPermissionFlag NHibernate Not supported
T:System.Transactions.TransactionEventArgs T:System.Transactions.TransactionEventArgs NHibernate Not supported
T:System.Transactions.TransactionEventArgs M:System.Transactions.TransactionEventArgs.get_Transaction NHibernate Not supported
T:System.Data.InvalidExpressionException T:System.Data.InvalidExpressionException NHibernate Not supported
T:System.Data.InvalidExpressionException M:System.Data.InvalidExpressionException.#ctor(System.String) NHibernate Not supported
T:System.Transactions.TransactionStatus T:System.Transactions.TransactionStatus NHibernate Not supported
T:System.Xml.ValidationType T:System.Xml.ValidationType NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Reflection.MemberTypes T:System.Reflection.MemberTypes NHibernate Not supported "Use typeof(), ""is FieldInfo"", ""is PropertyInfo"" to reason about the Member's type. Example: if (membertype == membertypes.Field) --> if (member is FieldInfo)."
T:System.Xml.Schema.XmlSchemaSet T:System.Xml.Schema.XmlSchemaSet NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Xml.Schema.XmlSchemaSet M:System.Xml.Schema.XmlSchemaSet.#ctor NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Xml.Schema.XmlSchemaSet M:System.Xml.Schema.XmlSchemaSet.Add(System.Xml.Schema.XmlSchema) NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Xml.Schema.XmlSchemaSet M:System.Xml.Schema.XmlSchemaSet.Compile NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Transactions.TransactionCompletedEventHandler T:System.Transactions.TransactionCompletedEventHandler NHibernate Not supported
T:System.Transactions.TransactionCompletedEventHandler M:System.Transactions.TransactionCompletedEventHandler.#ctor(System.Object,System.IntPtr) NHibernate Not supported
T:System.Runtime.Serialization.IDeserializationCallback T:System.Runtime.Serialization.IDeserializationCallback NHibernate Not supported
T:System.Runtime.Serialization.IDeserializationCallback M:System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(System.Object) NHibernate Not supported
T:System.Configuration.ConnectionStringSettingsCollection T:System.Configuration.ConnectionStringSettingsCollection NHibernate Not supported
T:System.Configuration.ConnectionStringSettingsCollection M:System.Configuration.ConnectionStringSettingsCollection.get_Item(System.String) NHibernate Not supported
T:System.ComponentModel.DesignerCategoryAttribute T:System.ComponentModel.DesignerCategoryAttribute NHibernate Not supported Remove usage. This is a deprecated attribute from Windows Forms for design-time property window support.
T:System.ComponentModel.DesignerCategoryAttribute M:System.ComponentModel.DesignerCategoryAttribute.#ctor(System.String) NHibernate Not supported Remove usage. This is a deprecated attribute from Windows Forms for design-time property window support.
T:System.Configuration.IConfigurationSectionHandler T:System.Configuration.IConfigurationSectionHandler NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Configuration.IConfigurationSectionHandler M:System.Configuration.IConfigurationSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode) NHibernate Not supported Use configuration appropriate for your application model. For portable Framework Components, expose API for configuration on type.
T:System.Data.Common.DbProviderFactories T:System.Data.Common.DbProviderFactories NHibernate Not supported
T:System.Data.Common.DbProviderFactories M:System.Data.Common.DbProviderFactories.GetFactory(System.String) NHibernate Not supported
T:System.Data.Odbc.OdbcCommand T:System.Data.Odbc.OdbcCommand NHibernate Not supported
T:System.Data.Odbc.OdbcCommand M:System.Data.Odbc.OdbcCommand.#ctor NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters T:System.CodeDom.Compiler.CompilerParameters NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters M:System.CodeDom.Compiler.CompilerParameters.#ctor NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters M:System.CodeDom.Compiler.CompilerParameters.get_ReferencedAssemblies NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters M:System.CodeDom.Compiler.CompilerParameters.set_CompilerOptions(System.String) NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters M:System.CodeDom.Compiler.CompilerParameters.set_GenerateInMemory(System.Boolean) NHibernate Not supported
T:System.CodeDom.Compiler.CompilerParameters M:System.CodeDom.Compiler.CompilerParameters.set_TreatWarningsAsErrors(System.Boolean) NHibernate Not supported
T:System.Converter`2 T:System.Converter`2 NHibernate Not supported Remove usage.
T:System.Converter`2 M:System.Converter`2.#ctor(System.Object,System.IntPtr) NHibernate Not supported Remove usage.
T:System.Reflection.ParameterModifier T:System.Reflection.ParameterModifier NHibernate Not supported Use an overload that does not take a Binder.
T:System.CodeDom.Compiler.CodeDomProvider T:System.CodeDom.Compiler.CodeDomProvider NHibernate Not supported
T:System.CodeDom.Compiler.CodeDomProvider M:System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(System.CodeDom.Compiler.CompilerParameters,System.String[]) NHibernate Not supported
T:System.Transactions.TransactionScopeOption T:System.Transactions.TransactionScopeOption NHibernate Not supported
T:System.Data.Odbc.OdbcConnection T:System.Data.Odbc.OdbcConnection NHibernate Not supported
T:System.Data.Odbc.OdbcConnection M:System.Data.Odbc.OdbcConnection.#ctor NHibernate Not supported
T:System.Runtime.Serialization.ISerializable T:System.Runtime.Serialization.ISerializable NHibernate Not supported
T:System.Runtime.Serialization.ISerializable M:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported
T:System.IO.TextWriter M:System.IO.TextWriter.Close NHibernate Not supported Use Dispose() instead.
T:System.Reflection.Emit.TypeBuilder M:System.Reflection.Emit.TypeBuilder.CreateType NHibernate Not supported
T:System.ArgumentException M:System.ArgumentException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported
T:System.ArgumentException M:System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported
T:System.Reflection.PropertyInfo M:System.Reflection.PropertyInfo.GetAccessors(System.Boolean) NHibernate Not supported
T:System.Reflection.PropertyInfo M:System.Reflection.PropertyInfo.GetGetMethod NHibernate Not supported Use PropertyInfo.GetMethod property.
T:System.Reflection.PropertyInfo M:System.Reflection.PropertyInfo.GetGetMethod(System.Boolean) NHibernate Not supported Use PropertyInfo.GetMethod property.
T:System.Reflection.PropertyInfo M:System.Reflection.PropertyInfo.GetSetMethod(System.Boolean) NHibernate Not supported Use PropertyInfo.SetMethod property.
T:System.Reflection.Assembly M:System.Reflection.Assembly.CreateInstance(System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object<],System.Globalization.CultureInfo,System.Object[>) NHibernate Not supported
T:System.Reflection.Assembly M:System.Reflection.Assembly.GetCustomAttributes(System.Type,System.Boolean) NHibernate Not supported
T:System.Reflection.Assembly M:System.Reflection.Assembly.GetExecutingAssembly NHibernate Not supported Typeof(CurrentType).GetTypeInfo().Assembly.
T:System.Reflection.Assembly M:System.Reflection.Assembly.GetReferencedAssemblies NHibernate Not supported
T:System.Reflection.Assembly M:System.Reflection.Assembly.GetType(System.String,System.Boolean) NHibernate Not supported Use Assembly.GetType(string), throw if you receive null return value.
T:System.Reflection.Assembly M:System.Reflection.Assembly.GetTypes NHibernate Not supported Use Assembly.DefinedTypes.
T:System.Reflection.Assembly M:System.Reflection.Assembly.Load(System.String) NHibernate Not supported Use Assembly.Load(new AssemblyName(string)).
T:System.Type M:System.Type.get_Assembly NHibernate Not supported .GetTypeInfo().Assembly.
T:System.Type M:System.Type.get_BaseType NHibernate Not supported .GetTypeInfo().BaseType.
T:System.Type M:System.Type.get_ContainsGenericParameters NHibernate Not supported .GetTypeInfo().ContainsGenericParameters.
T:System.Type M:System.Type.get_GenericParameterAttributes NHibernate Not supported
T:System.Type M:System.Type.get_IsAbstract NHibernate Not supported .GetTypeInfo().IsAbstract.
T:System.Type M:System.Type.get_IsClass NHibernate Not supported .GetTypeInfo().IsClass.
T:System.Type M:System.Type.get_IsEnum NHibernate Not supported .GetTypeInfo().IsEnum.
T:System.Type M:System.Type.get_IsGenericType NHibernate Not supported .GetTypeInfo().IsGenericType.
T:System.Type M:System.Type.get_IsGenericTypeDefinition NHibernate Not supported .GetTypeInfo().IsGenericTypeDefinition.
T:System.Type M:System.Type.get_IsInterface NHibernate Not supported .GetTypeInfo().IsInterface.
T:System.Type M:System.Type.get_IsPrimitive NHibernate Not supported .GetTypeInfo().IsPrimitive.
T:System.Type M:System.Type.get_IsSealed NHibernate Not supported .GetTypeInfo().IsSealed.
T:System.Type M:System.Type.get_IsSerializable NHibernate Not supported .GetTypeInfo().IsSerializable.
T:System.Type M:System.Type.get_IsValueType NHibernate Not supported .GetTypeInfo().IsValueType.
T:System.Type M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type<],System.Reflection.ParameterModifier[>) NHibernate Not supported Use GetConstructor(Type
T:System.Type M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type<],System.Reflection.ParameterModifier[>) NHibernate Not supported Use GetConstructor(Type
T:System.Type M:System.Type.GetGenericParameterConstraints NHibernate Not supported .GetTypeInfo().GetGenericParameterConstraints().
T:System.Type M:System.Type.GetInterfaceMap(System.Type) NHibernate Not supported
T:System.Type M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type<],System.Reflection.ParameterModifier[>) NHibernate Not supported Use GetMethod(string, Type
T:System.Type M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type<],System.Reflection.ParameterModifier[>) NHibernate Not supported Use GetProperty(string, Type, Type
T:System.Type M:System.Type.GetTypeCode(System.Type) NHibernate Not supported Use Type or RuntimeTypeHandle instead.
T:System.StringComparer M:System.StringComparer.get_InvariantCultureIgnoreCase NHibernate Not supported Use CompareInfo.GetStringComparer.
T:System.Delegate M:System.Delegate.CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo) NHibernate Not supported Use MethodInfo.CreateDelegate.
T:System.Delegate M:System.Delegate.CreateDelegate(System.Type,System.Object,System.String) NHibernate Not supported Use MethodInfo.CreateDelegate.
T:System.Delegate M:System.Delegate.get_Method NHibernate Not supported Use System.Reflection.RuntimeReflectionExtensions.GetMethodInfo.
T:System.Int32<0:,0:>](M:System.Int32<0:,0:>[0:,0:).#ctor(System.Int32,System.Int32) NHibernate Not supported
T:System.Int32<0:,0:>](M:System.Int32<0:,0:>[0:,0:).Get(System.Int32,System.Int32) NHibernate Not supported
T:System.Int32<0:,0:>](M:System.Int32<0:,0:>[0:,0:).Set(System.Int32,System.Int32,System.Int32) NHibernate Not supported
T:System.Exception M:System.Exception.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported Remove usage.
T:System.Exception M:System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) NHibernate Not supported Remove usage.
T:System.Exception M:System.Exception.GetType NHibernate Not supported False positive (Object.GetType() is sufficient).
T:System.Xml.XmlReaderSettings M:System.Xml.XmlReaderSettings.add_ValidationEventHandler(System.Xml.Schema.ValidationEventHandler) NHibernate Not supported
T:System.Xml.XmlReaderSettings M:System.Xml.XmlReaderSettings.set_Schemas(System.Xml.Schema.XmlSchemaSet) NHibernate Not supported
T:System.Xml.XmlReaderSettings M:System.Xml.XmlReaderSettings.set_ValidationType(System.Xml.ValidationType) NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Environment M:System.Environment.get_Version NHibernate Not supported Use System.Runtime.InteropServices.FrameworkDescription instead
T:System.IO.Stream M:System.IO.Stream.Close NHibernate Not supported Use Dispose() instead.
T:System.Reflection.MemberInfo M:System.Reflection.MemberInfo.get_MemberType NHibernate Not supported "Use typeof(), ""is FieldInfo"", ""is PropertyInfo"" to reason about the Member's type. Example: if (membertype == membertypes.Field) --> if (member is FieldInfo)."
T:System.Reflection.MemberInfo M:System.Reflection.MemberInfo.get_ReflectedType NHibernate Not supported Remove usage: As CAS is not supported in newer frameworks, this property no longer has meaning.
T:System.Reflection.MemberInfo M:System.Reflection.MemberInfo.IsDefined(System.Type,System.Boolean) NHibernate Not supported
T:System.Data.Common.DbConnection M:System.Data.Common.DbConnection.GetSchema(System.String) NHibernate Not supported
T:System.Data.Common.DbConnection M:System.Data.Common.DbConnection.GetSchema(System.String,System.String[]) NHibernate Not supported
T:System.IO.StreamWriter M:System.IO.StreamWriter.#ctor(System.String) NHibernate Not supported Use File.Open to get a Stream then pass it to StreamWriter constructor.
T:System.Array M:System.Array.AsReadOnly1(0[]) NHibernate Not supported Create a new System.Collections.ObjectModel.ReadOnlyCollection
T:System.Array M:System.Array.ConvertAll2(0[],System.Converter{0,1}) NHibernate Not supported Use foreach statement with custom conversion code to handle conversion.
T:System.Array M:System.Array.Copy(System.Array,System.Int64,System.Array,System.Int64,System.Int64) NHibernate Not supported
T:System.Array M:System.Array.ForEach1(0[],System.Action{``0}) NHibernate Not supported
T:System.Array M:System.Array.get_LongLength NHibernate Not supported
T:System.Attribute M:System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo,System.Type) NHibernate Not supported
T:System.String M:System.String.Intern(System.String) NHibernate Not supported
T:System.String M:System.String.IsInterned(System.String) NHibernate Not supported
T:System.Globalization.CultureInfo M:System.Globalization.CultureInfo.CreateSpecificCulture(System.String) NHibernate Not supported
T:System.Reflection.MethodBase M:System.Reflection.MethodBase.get_MethodHandle NHibernate Not supported
T:System.Reflection.MethodBase M:System.Reflection.MethodBase.GetCurrentMethod NHibernate Not supported
T:System.Diagnostics.StackTrace M:System.Diagnostics.StackTrace.#ctor(System.Boolean) NHibernate Not supported Currently there is no workaround, but we are working on it. Please check back.
T:System.Xml.Schema.XmlSchema M:System.Xml.Schema.XmlSchema.Read(System.IO.Stream,System.Xml.Schema.ValidationEventHandler) NHibernate Not supported
T:System.Xml.XmlReader M:System.Xml.XmlReader.Close NHibernate Not supported Use Dispose() instead.
T:System.Activator M:System.Activator.CreateInstance(System.Type,System.Boolean) NHibernate Not supported Use Activator.CreateInstance
T:System.IO.TextReader M:System.IO.TextReader.Close NHibernate Not supported Use Dispose() instead.
T:System.Collections.Hashtable M:System.Collections.Hashtable.OnDeserialization(System.Object) NHibernate Not supported
T:System.DateTime M:System.DateTime.ToShortDateString NHibernate Not supported Call DateTime.ToString(CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern).
T:System.DateTime M:System.DateTime.ToShortTimeString NHibernate Not supported Call DateTime.ToString(CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern).
T:System.Linq.Expressions.Expression M:System.Linq.Expressions.Expression.#ctor(System.Linq.Expressions.ExpressionType,System.Type) NHibernate Not supported Use a different constructor that does not take ExpressionType. Then override NodeType and Type properties to provide the values that would be specified to this constructor.
T:System.Collections.Generic.Dictionary`2 M:System.Collections.Generic.Dictionary`2.OnDeserialization(System.Object) NHibernate Not supported

Ricardo Peres added a comment — 28th February 2016, 15:23:52:

Guys, I don't think this will ever happen. .NET Core misses lots of stuff, and some, it will probably always miss.


Alexander Zaytsev added a comment — 29th February 2016, 6:48:27:

<jrauber> I saw this. Thanks

[rjperes] it is not possible to do through PCL, but still doable through .NET Core itself.


Johannes Rauber added a comment — 29th February 2016, 13:31:30:

I created the following Tasks NH-3853, NH-3854 and NH-3855 which structure the major findings I had when looking through the output of api-port. Could you please link them to this Feature?


Alexander Zaytsev added a comment — 29th February 2016, 13:38:55:

<~jrauber> done


Ricardo Peres added a comment — 29th February 2016, 13:56:03:

<~hazzik>: .NET Core will never, at least, in the foreseeable future, have ADO.NET/System.Data, so it will never be possible to port NHibernate.


chris_x added a comment — 29th February 2016, 17:34:08:

<~rjperes> How about porting NH to System.Data.Common (NH-3431)? I see you have spoken in favor of it yourself.


Alexander Zaytsev added a comment — 29th February 2016, 20:41:10:

<rjperes>, Chris is correct. Indeed .NET Core does not support System.Data IDb interfaces (IDbCommand, IDbConnection, IDb..., these are ADO.NET 1.0, and they are sealed as you can not change interface definitions), but does support counterpart abstract classes from System.Data.Common. We will do the NH-3431 task anyway for the introduction of async/await support.

Another thing which is not supported is DataSet/DataTable/DataView, which we have dependencies on. There are some hard debates between <fransbouma> (for his own benefit of LLBLGen Pro) and .NET Core team to reintroduce these classes back to the framework in some form.


Frans Bouma added a comment — 29th February 2016, 21:01:47:

MS recently added the IDb* interfaces to .NET core (will be there in RC2), and a stub for DataTable. They're planning to add DataTable later on, and have added an API for schema retrieval on datareader, so it's something ;) Still .NET core isn't really usable for a full ORM without a lot of compromises at v1.0

FB


chris_x added a comment — 29th February 2016, 22:40:41:

<~fransbouma> What kind of compromises? I understand porting won't be easy, but your statement seems a little vague to me. Besides, EF 7 supports CoreFX, and that is a "full" ORM too (for whatever that means).

And no, the (de facto deprecated) DataSet stuff is not a necessity for a "full" ORM. It's just hard to refactor existing code that depends on it.


Frans Bouma added a comment — 29th February 2016, 22:55:48:

micro vs. full, I hope I don't have to create a long list of things to illustrate the difference? ;)

Compromises: it's not that hard to materialize entities from a datareader, nor create some queries, but a lot of the services in full ORMs are built on functionality that's not there (yet) and thus needs to be written differently or to be cut out, which means you need to do a lot of work to add a lot of #ifdef's to make your code compile (and your tests run). I mean, which ADO.NET provider do you want to use with no ADO.NET provider available besides SQL Server and a stripped down npgsql 'alpha' built?

I didn't say that dataset is necessary, I think? For metadata retrieval / schema information regarding resultsets, you do need datatable though or at least a replacement api on datareader. This is 'being worked on', but not there yet.

Anyway, I'm just replying here because someone included me in the thread and I saw some remarks which were spreading outdated info (but as MS is vague and has recently updated things, you guys likely didn't know this, so no blame there, I just happened to know a few bits) and have no intention to participate in NHibernate discussions as in the past they weren't very pleasant so I don't tend to stick around here longer than absolutely necessary.

Cheers,

  Frans

Alexander Zaytsev added a comment — 29th February 2016, 23:30:27:

<~fransbouma> sorry for casting you in, indeed I did not read all your conversations with MS about the problem, I just noticed that you was the first to rise the very valid points about absence of some of crucial classes. So I brought you in, as the person who knows something more about the state of these items.

I can see that they have added IDb interfaces just 6 days ago.

Also, I'm very sorry, that you had had bad experience with NH community before. But we have changed and do not want to be so rude as we was before.

.


Frans Bouma added a comment — 1st March 2016, 16:23:30:

Hey Alexander,

Sorry about that, it's not fair of me to judge current management by looking at the previous management ;)

Anyway, here's what I know:
ADO.NET is owned by the SQL Server team. They're not really doing OSS (yet), and there are only 2 (!) team members on github doing work there, communicating with us outsiders, and that's of course a cumbersome process. It's not that they're not willing to change things or listen, (although it looks like that), it's that the current way of how they do things over there is pretty limited. There's a lot of push within MS to change this, so let's hope these people get their way and things open up more. Another annoying problem is that ADO.NET is designed from the PoV of SQL Server, and I've addressed this with MS personell and they've assured me this is something they try to avoid with the new bits, so let's hope they succeed.

For v1.0, things are pretty limited, with respect to ADO.NET, although interfaces are in. E.g. DbProviderFactory isn't implemented yet (although the class is there, there's no system designed how to get it working!). Basically what EF7 needs at v1 is in, the rest is on the back burner or is hastly added due to pressure from the community (e.g. by stackoverflow). This e.g. led to the addition of a proper API to DbDataReader for resultset schema retrieval, as there's no DataTable. (although they're looking at adding that, in a cutdown version as it's tied to databinding crap in .net full)

Rule of thumbs seems to be: use Interfaces (the ones added a couple of days ago) for code that also has to run on .net full, and use the base classes for code that's specific for .net core.

I'm currently waiting for v1.0 RTM tooling before I start porting one of the ORMs I manage as I hate working with a truckload of files scattered all over the place instead of letting an IDE do that work.

Cheers,

Frans


Ricardo Peres added a comment — 1st March 2016, 17:01:04:

Hi, <~fransbouma>!
You are right; I've been trying to tell the other guys: don't expect ADO.NET (as we know it) to be available any time soon in .NET Core. There have been recently - yesterday - discussions in the Microsoft mailing lists about this, and that was the general idea.


Johannes Rauber added a comment — 1st March 2016, 22:55:09:

Thanks to <~fransbouma> there is movement that might be enough to port. Currently DataTable is only used in conjunction with the Meta-Data-Retrieval for example in AbstractDataBaseSchema.cs or OracleMetaData.cs.

API for retrieving Columns Metadata from DbDataReader
https://github.com/dotnet/corefx/issues/5915

Define the Schema Objects for the DbConnection getSchema
https://github.com/dotnet/corefx/issues/5024
(edit: bad luck got tagged as "Future")

DbProviderFactory
https://github.com/dotnet/corefx/issues/4571


Mathieu Decelles St-Pierre added a comment — 21st July 2016, 0:26:54:

Please ignore Readme.txt attached file. My mistake.


Oskar Berggren added a comment — 21st July 2016, 8:58:49:

Bogus attachment Readme.md removed.


Nathan Brown added a comment — 6th August 2016, 22:56:46:

Antlr4 has an (antlr/antlr4#1142) to make the runtime compatible with .NET Core. Something similar would have to be done for Antlr3. Or would upgrading to Antlr4 be preferable?


Nathan Brown added a comment — 21st August 2016, 22:49:27:

I've submitted a pull request to get this effort started: #504

It's a work in progress, but shows what's possible and what sort of compromises need to be taken.

Input from the development team will be needed, especially around how to proceed with the unit test and lack of Schema support.


Nathan Brown added a comment — 24th August 2016, 13:16:17:

I responded to a comment on the (#504), and am cross-posting it here for the core developers. The question was if there was any opportunity to refactor some of NHibernate into separate libraries.

The most obvious part that could be sliced off is the NHibernate.Tool.hbm2ddl namespace and the associated NHibernate.Dialect.Schema namespaces. These areas currently do not work as written with .Net Core and it's questionable if they ever will. See <dotnet/corefx#3423>(https://github.com/dotnet/corefx/issues/3423] and [dotnet/corefx#5024|https://github.com/dotnet/corefx/issues/5024).

Most likely an alternative approach will have to be made where the NHibernate hbm2ddl functionality, that is schema synchronization, knows how to talk to the database meta-tables instead of relying on the driver to do it. This may be easier if it is already refactored into a separate library.

For example, Entity Framework Core talks to each kind of database through SQL commands to get the database metadata: </Microsoft.EntityFrameworkCore.Sqlite.Design/Internal/SqliteDatabaseModelFactory.cs>(https://github.com/aspnet/EntityFramework/blob/7c17eb7e53863c3087de4269db019777e476e31b/src/Microsoft.EntityFrameworkCore.Sqlite.Design/Internal/SqliteDatabaseModelFactory.cs).

Another part that is a possibility, is how the various database drivers are demand loaded through reflection. I don't know if they will all be consistent over to the .Net Core world and it might make sense to have each type of database support refactored out into separate libraries. The database support libraries could then link for real with their respective drivers and pull them down from NuGet as dependencies.


Nathan Brown added a comment — 29th September 2016, 14:08:21:

Microsoft has announced their direction on <.NET Standard 2.0>(https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/). Basically, they are adding back BinaryFormatter for serialization, but appear to be totally removing System.Data. NHibernate worked with serialization, but didn't really depend on it for any major functionality. It does however heavily depend on System.Data.

Entity Framework has pulled everything it needs out of System.Data and put it into Microsoft.Data. See <dotnet/efcore#2665>(dotnet/efcore#2665).

What is NHibernate's position for the future going to be? I've heard from companies I work with that they liked NHibernate in the past, but are moving to Entity Framework because it runs on .NET Core. How is NHibernate going to stay relevant?


hidegh added a comment — 28th November 2016, 15:59:43:

There were 2 issues to solve with NH 4.0 on asp.net core (targetting full .NET framework):

session context for web

distributed transactions

session context for web

  • Easy to solve, create a class like defined below.
  • Make sure NH is configured to use this new MapBasedSessionContext.
  • Ensure IHttpContextAccessor is initialized inside web, with code

The fluent configuration in this comment (last code block) refers to this class via string: sessionContextType.AssemblyQualifiedName

Startup.ConfigureServices(IServiceCollection services) { services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>(); }
namespace MyProject.Domain.Persistence.Patch
{
	/// <summary>
	/// NOTE: I've tried to instantiate HttpContextAccessor here, directly (so not from the AspNetCore.Startup) and that just did not worked...
	/// </summary>
	public class AspNetCoreWebSessionContextConfiguration
	{
		private static IHttpContextAccessor _httpContextAccessor;

		public static IHttpContextAccessor HttpContextAccessor
		{
			get { return _httpContextAccessor; }
			set
			{
				if (_httpContextAccessor != null)
					throw new Exception("AspNetCoreWebSessionContextConfiguration.HttpContextAccessor was already set!");

				_httpContextAccessor = value;
			}
		}
	}

	/// <summary>
	/// Provides a <see cref="ISessionFactory.GetCurrentSession()">current session</see> for each System.Web.HttpContext. Works only with web applications.
	/// Fix applied from: http://stackoverflow.com/questions/35440413/mvc6-dnx451-nhibernate-nullreferenceexception-on-hasbind/35521257
	/// </summary>
	<Serializable>
	public class AspNetCoreWebSessionContext : MapBasedSessionContext
	{
		private const string SessionFactoryMapKey = "NHibernate.Context.WebSessionContext.SessionFactoryMapKey";

		public AspNetCoreWebSessionContext(ISessionFactoryImplementor factory) : base(factory) { }

		protected override IDictionary GetMap()
		{
			return AspNetCoreWebSessionContextConfiguration.HttpContextAccessor.HttpContext.Items<SessionFactoryMapKey> as IDictionary;
		}

		protected override void SetMap(IDictionary value)
		{
			AspNetCoreWebSessionContextConfiguration.HttpContextAccessor.HttpContext.Items<SessionFactoryMapKey> = value;
		}
	}
}

The distributed transaction issues

There's a flushing problem in NH4.0 than is addressed in NH4.1, so even with this fix in NH4.0 I always flushed before promoted my transaction to distributed one. Anyhow, the DTC problem was solved by using the AdoNetTransactionFactory.

Configuring (fluently of course)

_configuration = Fluently.Configure()
	.Database(persistenceConfigurer)
	.Mappings(m =>
	{
		// add conventions
		m.FluentMappings.Conventions
			.SpecialRegistrationFromAssemblyOf<TableNameConvention>(
				namespaceToDbSchemaConvertor ?? new NamespaceToDbSchemaConvertor())
			.Add(DefaultCascade.SaveUpdate());

		// add our fluently mapped entities
		m.FluentMappings.AddFromAssemblyOf<IMappingContainer>();

		// we can export the hbm.xml generated from our fluent configuration to a directory
		// (directory must exists and be writable)
		if (!string.IsNullOrWhiteSpace(hbmXmlExportDirectory))
			m.FluentMappings.ExportTo(hbmXmlExportDirectory);
		})

	.CurrentSessionContext(sessionContextType.AssemblyQualifiedName)
	.ExposeConfiguration(c =>
	{
		// TO make DTC work while using TransactionScope and NHibernate...
		c.SetProperty(NHibernate.Cfg.Environment.TransactionStrategy, "NHibernate.Transaction.AdoNetTransactionFactory");

Hope this helps.


Nathan Brown added a comment — 4th December 2016, 4:30:11:

<~hidegh> Are you referring running code from the NH-3807 branch, or from the main-line NHibernate releases on Asp.Net Core?

If you are trying to say that you got standard NHibernate running on Asp.Net Core, with minimal modifications, than you are almost certainly running on the full-fat .NET Framework. It's not until .Net Core -1.2- 2.0 comes out in 2017 that NHibernate will be easily ported an the .Net Core framework. This will mean the ability to run on Windows Server Core, Linux, and MacOS.


Nathan Brown added a comment — 4th December 2016, 4:43:55:

.Net Standard 2.0 and .Net Core -1.2- 2.0 will be adding almost all the APIs missing from earlier versions of the .Net Core efforts back in. This means most of my earlier work will be negated and the port will be much more straightforward.

<^ApiPortAnalysis.html>

You can see the portability report attached. The summary is that there are still a few APIs that are not going to be portable. These include the ConfigurationManager, ConnectionStringSettings, IConfigurationSectionHandler, System.Runtime.Remoting.Messaging.CallContext, some reflection emit create type stuff, anything OleDb (being retired anyways), OdbcConnection, OdbcCommand, and DbProviderFactories.

With NHibernate version 5 now targeting 4.6.2, any .Net Core conversion should be fully compatible, so we should work to split this functionality off into separate assemblies instead of multiple configurations with #ifdef.

It looks like good candidates would be an Xml/AppConfig configuration adapter and database specific clients instead of generically using DbProviderFactories.

By having an assembly per supported database client, we can also pull in those client assemblies through NuGet and have straightforward dependency management.

Thoughts?


Alexander Zaytsev added a comment — 17th April 2017, 4:35:42:

Retarget to .NET Core 2.0


Jon Miller added a comment — 26th April 2017, 21:04:18:

So, DbProviderFactories is not being ported to .NET Core by Microsoft? Anyone know why this is? I have no idea why Microsoft always tries to push people into using the DBMS specific classes (other than vendor lock-in that is). It seems kind of dumb to me that they would drop support for this.


Nathan Brown added a comment — 3rd May 2017, 3:39:54:

So the preview release for .NET Core 2.0 is on <May 10th>(https://github.com/dotnet/corefx/issues/17619]. Has anyone tried the [daily builds|https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md) with NHibernate?

I think that between the preview and release is the most viable time to get in and hope to make any significant tweaks that NHibernate may need.

Should there a branch set aside for .NET Core 2.0 work? Or is the idea that it will be on master?


Alexander Zaytsev added a comment — 3rd May 2017, 3:48:09:

I tried. The problem that BuildTools do not want to build our project without full version of VS.


Alexander Zaytsev added a comment — 3rd May 2017, 3:52:59:

So basically the exercises is like following:

Convert projects to new shiny VS2017 format (except NHibernate.Test.VisualBasic, as VB is not yet supported). One failed attempt is here: #605

Make the build working

Replace net461 with netcoreapp2.0;net461

Guard all red code with #if !NETCOREAPP_20


Alexander Zaytsev added a comment — 3rd May 2017, 3:56:26:

Should there a branch set aside for .NET Core 2.0 work? Or is the idea that it will be on master?

We'll do it through the normal PR model. Then eventually merge to master.


Nathan Brown added a comment — 3rd May 2017, 3:56:47:

I assume you mean it's not working with VS 2017 Community? I haven't tried .NET 2.0 yet, and would normally use Enterprise, but I'll download and try it with Community.


Alexander Zaytsev added a comment — 3rd May 2017, 3:59:44:

No, it works with VS Community. I don't want full featured VS on a build agent. It does not work with (https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15)


Nathan Brown added a comment — 3rd May 2017, 4:15:23:

Hmmm. It's not like BuildTools is a tiny download either. AppVeyor doesn't seem to have a problem having the full Visual Studio installed on their build agents.

For Antr3 in the .NET Core 1,0 version, I had my own custom build, but if the upstream project is supporting it now, hopefully they can get the tooling fixed up.


Alexander Zaytsev added a comment — 3rd May 2017, 6:16:07:

The version which "compiles": https://github.com/hazzik/nhibernate-core/tree/NH-3807

To build from within VS2017 RTM (15.1): aspnet/Announcements#235


Nathan Brown added a comment — 29th May 2017, 0:07:22:

I think we are close with pull request <#633>(#633). It's currently passing 5,073 of 5,385 tests on Linux. If it could be reviewed and any commits/contributions made to help close the gap, we should be able to have something solid by the time .NET Core 2.0 is released.


aaaa ddd added a comment — 31st July 2017, 12:54:25:

  • not right place to ask - sorry for that mistake, i'll post in the right repo!
@yyordanov
Copy link

Hi, when is it expected to release a .NET Standard / .NET Core compliant version of NHibernate? I can see you're actively working on it but couldn't find any information about planned future releases.

@hazzik
Copy link
Member

hazzik commented Feb 28, 2018

Resolved by #1523

@hazzik hazzik closed this as completed Feb 28, 2018
@hazzik hazzik added this to the 5.1 milestone Feb 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants