I do not know what you mean by map this SP in LLBLGenPro as SPCall...
I will post all my code here to see if it further clarifies my question. Please help .. thanks.
Question: Following call appears to work successfully and does not error out. Yet records do not get added to the underline table.
adapter.CallActionStoredProcedure("[Framework].uspStringResourceAdd1", parameters);
My code is as follows:
public void StringResourceValueSave(List<StringResourceTVP> resources)
{
var parameters = new DbParameter[1];
var resourceTVP = resources.Select(p => p.ToTVPClass());
parameters[0] = new SqlParameter("@StringResourcesAndValues", SqlDbType.Structured);
parameters[0].Direction = ParameterDirection.Input;
parameters[0].Value = resourceTVP;
using (var adapter = new DataAccessAdapter(ConnectionStrings.VTX, false))
{
int i = adapter.CallActionStoredProcedure("[Framework].uspStringResourceAdd1", parameters);
Assert.AreEqual(i, 2);
}
}
[TestMethod]
public void StringResourceAddProc()
{
var resourceCollection = new List<StringResourceTVP>();
var resource = new StringResourceTVP(
null,
"Container1",
"Key1",
"CU1",
null,
"Value1");
resourceCollection.Add(resource);
resource = new StringResourceTVP(
null,
"Container2",
"Key2",
"CU2",
null,
"Value2");
resourceCollection.Add(resource);
StringResourceValueSave(resourceCollection);
}
public class StringResourceTVP
{
/// <summary>
/// Initializes a new instance of the <see cref="StringResourceTVP"/> class.
/// </summary>
/// <param name="id">
/// The id.
/// </param>
/// <param name="container">
/// The container.
/// </param>
/// <param name="key">
/// The key.
/// </param>
/// <param name="culture">
/// The culture.
/// </param>
/// <param name="stringresourceid">
/// The stringresourceid.
/// </param>
/// <param name="value">
/// The value.
/// </param>
public StringResourceTVP(
int? id,
string container,
string key,
string culture,
int? stringresourceid,
string value)
{
ID = id;
Container = container;
Key = key;
Culture = culture;
StringResourceID = stringresourceid;
Value = value;
}
/// <summary>
/// Gets or sets the id.
/// </summary>
public int? ID { get; set; }
/// <summary>
/// Gets or sets the container.
/// </summary>
public string Container { get; set; }
/// <summary>
/// Gets or sets the key.
/// </summary>
public string Key { get; set; }
/// <summary>
/// Gets the value.
/// </summary>
public string Value { get; set; }
/// <summary>
/// Gets or sets the culture.
/// </summary>
public string Culture { get; set; }
/// <summary>
/// Gets or sets the string resource id.
/// </summary>
public int? StringResourceID { get; set; }
/// <summary>
/// The to tvp class.
/// </summary>
/// <returns>
/// The Microsoft.SqlServer.Server.SqlDataRecord.
/// </returns>
public SqlDataRecord ToTVPClass()
{
var record = new SqlDataRecord(
new[]
{
new SqlMetaData("ID", SqlDbType.Int),
new SqlMetaData("Container", SqlDbType.VarChar, 255),
new SqlMetaData("Key", SqlDbType.VarChar, 50),
new SqlMetaData("Culture", SqlDbType.VarChar, 10),
new SqlMetaData("StringResourceID", SqlDbType.Int),
new SqlMetaData("Value", SqlDbType.VarChar, 850)
});
return record;
}
}