Je ne sais pas si je peux compresser une solution et la distribuer parce qu'il y a une licence subsonique. Ce n'est pas subsonique, et il a environ 2 mois (dépassé). J'ai juste couru le projet pour tester qu'il fonctionnait toujours et c'est.Voici les étapes pour cela:
Utilisez la classe UpdatableDatabase mentionnée ci-dessus. Ensuite, tirer DB de celui-ci (mettre ceci dans le modèle):
public partial class DB: UpdateableDatabase
UpdatableDatabase.cs doit être avec les classes générées ou il ne fonctionnera pas, car il doit GetType() sur les classes de la table.
Le service est simplement un projet de service avec cette classe:
using System.Data.Services;
using Northwind;
namespace NorthwindService
{
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class Northwind: DataService<DB>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(IDataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.UseVerboseErrors = true;
}
}
}
La partie de service de web.config est facile:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
Ensuite, pour le projet de test, ajoutez une référence de service à le service. Je pris le code de test du projet astoria je pense, il a été un moment:
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WcfClientTest.NorthwindService;
namespace WcfClientTest
{
/// <summary>
/// Summary description for WcfTest
/// To run these tests, load this project, and somehow get a server running at the URI.
/// This can be done by updating the service reference to start the development server.
/// </summary>
[TestClass]
public class WcfTest
{
private string baseURI = "http://127.0.0.1:49649/Northwind.svc";
private DB ctx;
/// <summary>
/// Sets up test.
/// </summary>
[TestInitialize]
public void SetUp()
{
ctx = new DB(new Uri(baseURI));
}
[TestCleanup]
public void Cleanup()
{
}
[TestMethod]
public void Select_Simple_With_Variable()
{
int categoryID = 5;
IQueryable<Product> result = from p in ctx.Products
where p.CategoryID == categoryID
select p;
List<Product> products = result.ToList();
Assert.AreEqual(7, products.Count());
}
[TestMethod]
public void TestAddNew()
{
// add customer
var c = new Customer
{
CustomerID = "XXXXX",
ContactTitle = "Prez",
Country = "USA",
ContactName = "Big Guy",
CompanyName = "Big Guy Company"
};
ctx.AddToCustomers(c);
ctx.SaveChanges();
IQueryable<Customer> qCustomer = from cust in ctx.Customers
where cust.CustomerID == "XXXXX"
select cust;
Customer c2 = qCustomer.FirstOrDefault();
Assert.AreEqual("XXXXX", c2.CustomerID);
if (c2 != null)
{
ctx.DeleteObject(c2);
}
ctx.SaveChanges();
IQueryable<Customer> qCustomer2 = from cust in ctx.Customers
where cust.ContactName == "Big Guy"
select cust;
// Returns null if the row isn't found.
Customer c3 = qCustomer2.SingleOrDefault();
Assert.AreEqual(null, c3);
}
}
}
C'est tout ce que je l'ai, il est difficile de ne pas mettre ensemble. En ce moment, c'est une solution à la recherche d'un problème, mais j'ai l'intention de l'utiliser un jour. Il serait possible de contourner entièrement subsonic, et utiliser le kit IQToolkit directement, et avec certains modèles T4 ont un système assez sympa.
est projet de test de démarrage disponible en téléchargement? Avez-vous fait référence à http://code.google.com/p/subsonicthree/source/browse/, je ne vois aucune branche. – MicMit
Il semble avoir été complètement effacé du contrôle de la source. Je peux fournir un lien vers ma version plus tard aujourd'hui. Il a les changements de modèle, etc. –